我刚注意到这种行为,无法完全绕过它。
所以我有两个打字稿文件File1.ts File2.ts
File1.ts:
module myNamespace {
export class myClass1 {
someMethod(myClass2) // use this class
}
}
File2.ts:
module myNamespace {
export class myClass2 {
}
}
这是有效的,因为两个类在编译后都会在同一个命名空间中结束。
然而,当我将File2.ts更改为此
时export module myNamespace {
export class myClass2 {
}
}
当我在module关键字前面添加export关键字时,typescript编译器会抱怨它无法再在File1.ts中找到myClass2
为什么?是因为导出显式设置了新的命名空间,无论它是否已经存在?除了
之外,File2.ts创建的javascript几乎相同define(["require", "exports"], function(require, exports) { .. }
这是否定义了一个我必须深入研究的新的闭包?
很抱歉,如果这有点令人费解。
答案 0 :(得分:1)
我认为这只是一个编译器要求。在操场上,我的代码出现了这个错误:
但是,如果我将代码更改为:
,一切正常
或者这个..
在这两种情况下,输出代码都是相同的。