Enums 使用全局名称声明枚举
我有一个Javascript函数,它接受一个数字。还有一些顶级常量:Enums 使用全局名称声明枚举,enums,typescript,Enums,Typescript,我有一个Javascript函数,它接受一个数字。还有一些顶级常量: var FOO = 1; var BAR = 2; 只有使用这些常量中的一个来调用这个函数才有意义 我想使用enum为此函数创建类型安全接口: declare enum MyType { FOO, BAR } interface MyClass { process(MyType type); } 但此代码在js文件中输出MyType.FOO。我需要它只输出FOO,但在typescript代码中仍然
var FOO = 1;
var BAR = 2;
只有使用这些常量中的一个来调用这个函数才有意义
我想使用enum为此函数创建类型安全接口:
declare enum MyType {
FOO,
BAR
}
interface MyClass {
process(MyType type);
}
但此代码在js文件中输出MyType.FOO
。我需要它只输出FOO
,但在typescript代码中仍然是类型安全的。可能吗
// Version A
const enum _MyType {
FOO,
BAR
}
let FOO = _MyType.FOO;
let BAR = _MyType.BAR;
或
不管怎样
function fn(x: _MyType) { /* ... */ }
fn(FOO); // OK
fn('quack'); // Error
function fn(x: _MyType) { /* ... */ }
fn(FOO); // OK
fn('quack'); // Error