我需要在每个外部typescript模块中声明一个全局变量吗



我一直在使用一个全局变量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');,但我认为这不是你在这种情况下想要的,因为你已经说过这是一个全局变量

最新更新