我有一个分为两个文件的打字稿模块, 和tsc(版本0.9.1.1)编译它没有错误,生成的代码正确运行。
以下是我的模块的源文件摘要:
的 split_module_example.ts :
//file: orders.part1.ts
module Orders { // first part of Orders
export var msg : string;
// set orders here
msg = 'hello';
}
//file: orders.part1.ts
module Orders { // second part of Orders
export var msg : string;
// reference orders here
console.log('orders=' + msg);
}
编译器生成这个javascript,看起来对我来说是正确的:
//file: orders.part1.ts
var Orders;
(function (Orders) {
Orders.msg;
Orders.msg = 'hello';
})(Orders || (Orders = {}));
//file: orders.part1.ts
var Orders;
(function (Orders) {
Orders.msg;
// reference orders here
console.log('orders=' + Orders.msg);
})(Orders || (Orders = {}));
我刚刚将我的TypeScript编译器从0.9.1.1升级到0.9.5.0。
但现在我运行tsc:
tsc --out split_module_example.js split_module_example.ts
它发出此错误:
split_module_example.ts(9,16): error TS2000: Duplicate identifier 'msg'.
但是,代码仍然可以正常运行。
我想知道我做错了什么,或者0.9.5.0编译器中是否有错误。
答案 0 :(得分:0)
您应该只在一个位置声明变量。只需从除一个模块之外的所有模块中删除var
声明,一切都将按预期工作。