我有一个使用模块构建的网站requireJS.我想在这个项目上开始使用TypeScript(1.8,Visual Studio 2015),并尝试重写其中一个模块.
目前我的模块如下:
// file: ProjectFoo/app/dashboard/viewProfile.js
define(["services/datasvc"], function (datasvc) {
datasvc.getData(...).then(...);
});
Run Code Online (Sandbox Code Playgroud)
文件datasvc.js位于以下路径:ProjectFoo/services/datasvc.js
为了使datasvc.jsrequireJS 可以访问,我已经配置了以下路径(requireJS配置):
services - > ./services
重写我的模块后,我使用以下构造导入datasvc(注意:TypeScript编译器配置为使用amd模块结构).
import * as datasvc from "services/datasvc";
Run Code Online (Sandbox Code Playgroud)
但是这不起作用,因为TypeScript将其services/datasvc视为相对于当前文件的路径.但是,如果我按如下方式重写该import语句,那么TypeScript [compiler]会成功:
import * as datasvc from "../../services/datasvc";
Run Code Online (Sandbox Code Playgroud)
然而,这导致datasvc使用相对路径导入,即生成代码看起来像:
define(["require", "exports", "../../services/datasvc"]...
Run Code Online (Sandbox Code Playgroud)
这里的问题是我将不得不更改../要包含在模块路径中的数量,具体取决于我所在文件的嵌套深度.
问题:
有没有办法使用import * as datasvc from "services/datasvc"和以某种方式配置TypeScript来处理requireJS的相同方式?
typescript ×1