在我的原始TS文件(
然而,生成的输出文件(
问题在于,我有其他javascript模块需要使用foo并希望重用该枚举。
是否可能让编译器在
为什么编译器不默认生成可重复使用的东西,可以作为枚举值的引用替代品(这通常是使用枚举时的意图)?
foo.ts
)中,我有以下内容:export const enum ACCESS_STATE {
master,
readonly,
none,
failed
}
当TypeScript编译器完成后,输出的 (foo.d.ts
) 文件将包含以下内容:
const enum ACCESS_STATE {
master = 0,
readonly = 1,
none = 2,
failed = 3,
}
然而,生成的输出文件(
foo.js
)中根本没有提及ACCESS_STATE
或其值。直接在foo.js
中这并不是问题,因为编译器会正确地将ACCESS_STATE.master
和其他引用替换为硬值0(等等)。问题在于,我有其他javascript模块需要使用foo并希望重用该枚举。
是否可能让编译器在
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 ;
为什么编译器不默认生成可重复使用的东西,可以作为枚举值的引用替代品(这通常是使用枚举时的意图)?