当编译(--out)包含相同模块标识符的多个*.ts文件,每个文件都包含一个类时,将创建一个*.js文件,其中每个类都被包装在自己的闭包中,并且模块的引用传递给每个闭包。
示例:
Bar.ts:
module baz {export class Bar {}}
Foo.ts:
module baz { export class Foo {}}
out.js
var baz
(function(baz){ var Bar = ... })(baz);
(function(baz){ var Foo = ... })(baz);
有没有一种方法可以将两个类包含到一个单独的文件中,以便编译器创建一个闭包,在其中声明两个类?在一个*.ts文件中放置所有类似乎是一个非常糟糕的想法。
目标是:
- 每个类使用一个*.ts文件
- 在模块的所有类中使用未导出的类
- 为模块提供一个清晰的接口
module baz {
part "Foo.ts";
part "Bar.ts";
}
Foo.ts
part of "baz.ts";
export class Foo {}
Bar.ts
part of "baz.ts";
export class Bar {}
感谢阅读,
马丁