TypeScript:从类访问全局变量而不导入

TypeScript: access global var from a class without import

本文关键字:导入 全局变量 访问 TypeScript      更新时间:2023-09-26

我得到了这样的模块:

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'

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

我希望你不要在TypeScript论坛上玩心术,否则我就要重复一遍了。

exportimport一起工作。 您应该同时使用两者或两者都不使用。 如果您检查生成的代码在有和没有 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 编译为单个文件。 这样可以(通常)以正确的顺序获得所有文件。