Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过它获取枚举元素';TYPESCRIPT中的s值_Javascript_Typescript_Enums - Fatal编程技术网

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”。

这里不是反向映射。从未想过使用类型作为枚举,但这是实现我真正想要的功能的最佳方法。谢谢你!!!