我一直在使用一个全局变量system,它在index.ts中定义。当我使用内部模块时,一切都很顺利,可能是因为我开始用--out在index.ts中编译。
现在我切换到外部模块,编译器为全局变量"system"抛出错误。我在每个文件中都保留了一个单独的.d.ts文件作为外部库,并尝试添加
declare var system:System
在共享的参考文件中,但这不起作用。
实际工作是将declare语句添加到每个使用全局变量的文件中。所以我的问题是,这是我应该做的(在每个文件中声明),还是我遗漏了什么。
Tnx!
在Visual Studio 2013(更新3)中,在我设置的测试中仅存在system.d.ts
就足够了。。。
system.d.ts(我编的)
interface System {
someStuff(): void;
}
declare var system: System;
afile.ts
class Lower {
constructor(private word: string) {
system.someStuff();
}
}
export = Lower
我可以从任何地方访问system.someStuff();
。
如果您使用不同的IDE,您可能需要添加:
///<reference path="system.d.ts" />
这向编译器暗示定义存在,但实际上并没有将system
作为外部模块导入(如果你想像模块一样加载它,可以使用import system = require('system');
,但我认为这不是你在这种情况下想要的,因为你已经说过这是一个全局变量