我有以下情况:
/*file A/Z.ts*/
///<reference path="B/Y.ts"/>
module A{
import Y = B.Y;
export class Z{
//use class Y
}
}
/*file A/B/Y.ts*/
///<reference path="../Z.ts"/>
module A.B{
import Z = A.Z;
export class Y{
//use class Z
}
}
这似乎编译正常,但我得到javascript问题。
在chrome dev控制台中调用var y = new Y()
时,我得到:Uncaught TypeError: undefined is not a function
并查看生成的JavaScript,IntelliJ代码检查指出B
是私有且无法访问。
值得注意的是,我的所有.ts都被编译成一个文件。
编辑:进一步检查是一个订购问题。在生成的javascript中移动声明修复了JavaScript错误。 这个问题才出现在我开始在模块中包装我的类时。即订购是很好的前模块,让我认为我的所有参考都没问题。
TSC版本为1.5.0-beta
答案 0 :(得分:0)
我认为这是一个订购问题。我通过重新审核///<reference path=""/>
语句并从///<reference path="../Z.ts"/>
删除Y.ts
来修复此问题。
阅读this后
似乎不需要它,因为编译器已经在此阶段加载了Z.ts
并且包括它只是改变了顺序。