Kim*_*tes 3 javascript enums compilation typescript
在我的原始 TS 文件 ( foo.ts) 中,我有以下内容:
export const enum ACCESS_STATE {
master,
readonly,
none,
failed
}
Run Code Online (Sandbox Code Playgroud)
Typescript 编译器完成后,输出 ( foo.d.ts) 文件正确包含以下内容:
const enum ACCESS_STATE {
master = 0,
readonly = 1,
none = 2,
failed = 3,
}
Run Code Online (Sandbox Code Playgroud)
然而,生成的输出 ( ) 文件根本foo.js没有对其或其值的引用。ACCESS_STATE这不是foo.js直接的问题,因为编译器会正确地替换ACCESS_STATE.master和其他对硬值 0(等)的引用。
问题是我有其他需要 foo 并且想要重用枚举的 javascript模块。
是否可以让编译器在 中生成可foo.js引用且可以使用的东西?例如:
var ACCESS_STATE = (function () {
function ACCESS_STATE () {
this.master = 0;
this.readonly = 1;
this.none = 2;
this.failed = 3
}
return ACCESS_STATE ;
}());
foo.ACCESS_STATE = ACCESS_STATE ;
Run Code Online (Sandbox Code Playgroud)
为什么这不是编译器生成可重用的东西的默认行为,该东西可以作为枚举中的值的引用替代(这通常是使用枚举的目的)?