当编译(--out)多个 *.ts 文件时,每个文件都包含一个具有相同模块标识符的类,会创建一个 *.js 文件,其中每个类都包装在自己的闭包中,并将模块的引用传递给每个闭包。
例子:
酒吧.ts:
module baz {export class Bar {}}
脚:
module baz { export class Foo {}}
out.js
var baz
(function(baz){ var Bar = ... })(baz);
(function(baz){ var Foo = ... })(baz);
有没有办法将两个类都包含在一个文件中,以便编译器创建一个闭包来声明两个类?将所有类放在一个 *.ts 文件中似乎是一个非常糟糕的主意。
目的是:
- 每个类使用一个 *.ts 文件
- 在模块的所有类中使用未导出的类
- 为模块提供一个干净的接口
我实际意思的类似 Dart 的伪代码:
baz.ts
module baz {
part "Foo.ts";
part "Bar.ts";
}
脚
part of "baz.ts";
export class Foo {}
巴茨
part of "baz.ts";
export class Bar {}
谢谢阅读,
马丁