在编译时内联的 Typescript 全局枚举

Geo*_*rge 10 enums typescript

我有一个枚举,几乎在我的项目中的任何地方都使用它。我不想将其导入每个文件中。有没有办法在.d.ts文件中定义一个枚举,以便在编译为 js 时将其内联?

在我的types/global.d.ts文件中我尝试过

declare enum MessageType {
    DIRECT = 'direct',
    FORWARDED = 'forwarded'
}
Run Code Online (Sandbox Code Playgroud)

当我运行该应用程序时,MessageType.DIRECT is not defined我尝试使用它的代码中的某处出现错误。我从未导入过这个枚举,因为 tslint 可以识别它并且自动补全也可以工作。

我也尝试了declare const enum ...同样的效果。

有任何想法吗?

Ric*_*ard 3

通过使用declare,您创建了一个环境枚举,这意味着您正在定义现有对象的形状,因此这只是生成类型,而不是实际对象。

如果删除declare,它将创建枚举的类型和对象

https://www.typescriptlang.org/docs/handbook/enums.html有关环境枚举的更多详细信息