Javascript 通过它获取枚举元素';TYPESCRIPT中的s值
我有以下枚举:Javascript 通过它获取枚举元素';TYPESCRIPT中的s值,javascript,typescript,enums,Javascript,Typescript,Enums,我有以下枚举: enum ABC { A = 'a', B = 'b', C = 'c', } 我有以下方法: doSomething(enum: ABC) { switch(enum) { case A : console.log(A); break; case B : console.log(B); break; case C : console.log(C); break; }
enum ABC {
A = 'a',
B = 'b',
C = 'c',
}
我有以下方法:
doSomething(enum: ABC) {
switch(enum) {
case A :
console.log(A);
break;
case B :
console.log(B);
break;
case C :
console.log(C);
break;
}
}
是否可以使用以下字符串之一调用方法doSomething(enum:ABC)
:'a','b','c'。
我想做的是:
const enumA: ABC = ABC.getByValue('a'); // this would be like ABC.A
doSomething(enumA);
在typescript中是否可能出现类似的情况?typescript只在编译时强制执行类型安全。因此这里不需要ABC.getByValue('a'),因为您知道该值是'a',对于函数来说是可以的。在这种情况下,如果没有更好的选择,您可以“强制”Typescript使用“as”吞下表面上错误的类型:
doSomething('a'作为ABC)代码>
另一种比枚举更简单的方法是如下设置类型:
类型ABC='a'|'b'|'c'代码>
然后强制执行正确的字符串,您可以直接传入“a”。这里不是反向映射。从未想过使用类型作为枚举,但这是实现我真正想要的功能的最佳方法。谢谢你!!!