编译(--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文件中似乎是一个非常糟糕的主意。
目的是:
类似于Dart的伪代码我的意思是:
baz.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 {}
感谢阅读,
马丁
答案 0 :(得分:1)
在TypeScript中,问题的关键点是第2点。如果将模块拆分为多个文件,则需要将要提供的类导出到其他文件中。
当然,这也意味着消费者会看到列出所有这些类,我理解这会影响您为模块提供干净界面的观点。根据您的具体情况,在给定约束的情况下构建模块和类的答案将有所不同。我倾向于不将模块视为宽名称空间,我使它们非常狭窄和具体,所以我会有一个Ajax
模块,而不是具有不同类的Communication
模块来表示不同的通信方式。 / p>