我在两个文件中有一个模块:
file1.ts:
module foo {
export function bar1() {
alert("1");
}
}
file2.ts:
module foo {
export function bar2() {
alert("2");
}
}
和输出文件是:
// out.js
var foo;
(function (foo) {
function bar1() {
alert("1");
}
foo.bar1 = bar1;
})(foo || (foo = {}));
var foo;
(function (foo) {
function bar2() {
alert("2");
}
foo.bar2 = bar2;
})(foo || (foo = {}));
而不是将这两个模块聚合成单个js函数?
答案 0 :(得分:1)
这就是语言运作的方式。它类似于以下代码:
var foo = 123;
foo = 456;
将此代码重写为:
应该是安全的var foo = 456;
但是typescript编译器不会为你做这个。类似地,编译器正在生成您要求它执行的操作。您要求module
并为您生成一个。{1}}。
更新:如果您不想要这种冗余,您可以通过多种方式编写代码,其中一种方法非常简单:
var foo:{
a?:number;
b?:string;
} = {}
// file a
foo.a = 123;
// file b
foo.b = '123';