【发布时间】:2014-01-19 22:37:39
【问题描述】:
我刚刚注意到这种行为,无法完全理解它。
所以我有两个打字稿文件 File1.ts File2.ts
文件1.ts:
module myNamespace {
export class myClass1 {
someMethod(myClass2) // use this class
}
}
文件2.ts:
module myNamespace {
export class myClass2 {
}
}
这很有效,因为两个类在编译后都在同一个命名空间中。
但是,当我将 File2.ts 更改为此
export module myNamespace {
export class myClass2 {
}
}
当我在模块关键字前面添加 export 关键字时,打字稿编译器抱怨它在 File1.ts 中找不到 myClass2
这是为什么呢?是因为 export 明确设置了一个新的命名空间,而不管它是否已经存在?为 File2.ts 创建的 javascript 几乎相同,除了
define(["require", "exports"], function(require, exports) { .. }
这是否定义了一个我必须深入研究的新闭包?
对不起,如果这有点令人费解。
【问题讨论】:
标签: javascript namespaces typescript