引用嵌套的 TypeScript 模块
Referencing nested TypeScript modules
我有以下情况:
/*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 开发控制台中调用 var y = new Y()
时,我得到:Uncaught TypeError: undefined is not a function
并查看生成的 JavaScript IntelliJ 代码检查指出 B
是私有的且不可访问.
值得注意的是,我所有的 .ts 都被编译成一个文件。
编辑:经进一步检查,这是一个订购问题。在生成的 javascript 中四处移动声明修复了 JavaScript 错误。
只有当我开始将 类 包装在模块中时,问题才会出现。即订购很好预模块让我假设我所有的参考都很好。
TSC 版本为 1.5.0-beta
因为我认为这是一个订购问题。我通过重新检查我的 ///<reference path=""/>
语句并从 Y.ts
.
中删除 ///<reference path="../Z.ts"/>
来解决问题
看完后this
似乎不需要它,因为编译器在此阶段已经加载 Z.ts
并且包含它只是改变了顺序。
我有以下情况:
/*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 开发控制台中调用 var y = new Y()
时,我得到:Uncaught TypeError: undefined is not a function
并查看生成的 JavaScript IntelliJ 代码检查指出 B
是私有的且不可访问.
值得注意的是,我所有的 .ts 都被编译成一个文件。
编辑:经进一步检查,这是一个订购问题。在生成的 javascript 中四处移动声明修复了 JavaScript 错误。 只有当我开始将 类 包装在模块中时,问题才会出现。即订购很好预模块让我假设我所有的参考都很好。
TSC 版本为 1.5.0-beta
因为我认为这是一个订购问题。我通过重新检查我的 ///<reference path=""/>
语句并从 Y.ts
.
///<reference path="../Z.ts"/>
来解决问题
看完后this
似乎不需要它,因为编译器在此阶段已经加载 Z.ts
并且包含它只是改变了顺序。