TypeScript:从没有导入的类访问全局变量

时间:2013-11-08 20:59:09

标签: javascript static global-variables typescript

我得到了这样的模块:

module MyModule {
    export class Constants {
        public static WIDTH:number = 100;
        public static HEIGHT:number = 100;
        ....
    }
} 
export = MyModule;

现在我需要在另一个类中使用MyModule.Constants.WIDTH,但我不能使用import(我需要将此类js传递给第三方,并且他们不使用requirejs)。现在我使用引用来获取代码检查,但它一直给出这个错误(在发布时间)

error TS2095: Could not find symbol 'MyModule'

我现在应该怎么做才能使用自动完成并摆脱这个错误?

1 个答案:

答案 0 :(得分:1)

我希望你在TypeScript论坛上不是mindplay,否则我就要重复自己了。

exportimport一起工作。您应该使用两者或两者都不使用。如果您检查生成的代码的内容withwithout export关键字,您会看到export导致构建模块。由于第三方不能使用RequireJS,我不认为这是你想要的。

我会按以下方式构建我的类:

    // file pkg/Foo.ts
module company.pkg {
    export class Foo {}
}

    // file pkg2/Bar.ts
module company.pkg2 {
    export class Bar{}
}

将所有内容放入公司的名称空间可以最大限度地减少与其他库发生冲突的可能性。使用引用/// <reference path="..." />的类可以相互了解,这将允许它进行编译。

由于你没有做模块,我也会使用--out filename.js编译成一个文件。这使得所有文件都包含在(通常)正确的顺序中。