我有一个接受数字的Javascript函数。还有一些顶级常量:
var FOO = 1;
var BAR = 2;
只有使用其中一个常量调用此函数才有意义。
我想使用enum:
为这个函数创建一个类型安全的接口declare enum MyType {
FOO,
BAR
}
interface MyClass {
process(MyType type);
}
但此代码在js文件中输出MyType.FOO
。我需要它只输出FOO
但在typescript代码中仍然是类型安全的。有可能吗?
答案 0 :(得分:2)
// Version A
const enum _MyType {
FOO,
BAR
}
let FOO = _MyType.FOO;
let BAR = _MyType.BAR;
或
// Version B (if FOO and BAR come from another file)
declare const enum _MyType {
FOO,
BAR
}
declare let FOO: _MyType;
declare let BAR: _MyType;
无论哪种方式,
function fn(x: _MyType) { /* ... */ }
fn(FOO); // OK
fn('quack'); // Error