不使用模块加载器
仅当您使用某些模块模式(AMD / CommonJS)时,文件根级别的 export 关键字才相关。如果你不是以下将工作:
测试1.ts:
class Test1 { // Do not use export
}
测试2.ts:
/// <reference path="Test1.ts" />
class Test2 {
abc: Test1; // No Error
}
但是,如果您这样做,您有责任确保在 Test2.js 之前加载 Test1.js,可能使用脚本标记。
注意:如果您使用根级别导出而不使用模块加载器,例如:
export class Test2 {
}
生成的javascript:
var Test2 = (function () {
function Test2() { }
return Test2;
})();
exports.Test2 = Test2;
是错误的,因为没有在任何地方定义导出。
如果您使用的是AMD(或 CommonJS):
然后你需要使用一个导入来告诉加载器加载文件:
测试1.ts:
export class Test1 {
}
测试2.ts:
// no reference to other ts required.
import mod = module("Test1"); // Instead you need to load the module
export class Test2 {
abc: mod.Test1; // Reference by module
}
此外
在 AMD 领域,每个文件都是一个模块。所以我不想在文件中包含模块,因为这是另一个级别的重定向。即我将需要做importedFile.module.class
而不是我选择在导入时调用文件的位置(我在给定的示例中调用它)importedFile.class
importedFile
mod