打字稿:如何获取枚举“名称”及其值?

时间:2020-03-11 09:54:28

标签: typescript

我有这个枚举:

export enum myEnum {
  name1 = 'my name',
  name2 = 'my other name',
  name3 = 'other'
}

我有一个myEnum对象:

const x = myEnum.name1;
console.log(x)  // prints 'my name' 

如何用const x打印'name1'?换句话说,如何获取具有myEnum值“ myEnum.name1”的枚举名称“ name1”?

编辑:

这是它的外观:

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

根据the documentation,枚举可以如下反向映射:

enum Enum {
    A
}
let a = Enum.A;
let nameOfA = Enum[a]; // "A"

要枚举枚举的值 和键 ,可以将其有效地视为标准JS对象。在这里,您可以选择使用Object.entries进行探测:

Object.entries(myEnum)

将产生一组键值对:

[["name1","my name"],["name2","my other name"],["name3","other"]]