小编典典

如何获取枚举条目的名称?

all

我想迭代一个 TypeScript 枚举对象并获取每个枚举的符号名称,例如: enum myEnum { entry1, entry2 }

for (var entry in myEnum) { 
    // use entry's name here, e.g., "entry1"
}

阅读 183

收藏
2022-03-11

共1个答案

小编典典

您发布的代码将起作用;它将打印出枚举的所有成员,包括枚举成员的值。例如,下面的代码:

enum myEnum { bar, foo }

for (var enumMember in myEnum) {
   console.log("enum member: ", enumMember);
}

将打印以下内容:

Enum member: 0
Enum member: 1
Enum member: bar
Enum member: foo

如果您只需要成员名称而不是值,则可以执行以下操作:

for (var enumMember in myEnum) {
   var isValueProperty = parseInt(enumMember, 10) >= 0
   if (isValueProperty) {
      console.log("enum member: ", myEnum[enumMember]);
   }
}

这将只打印出名称:

Enum member: bar  
Enum member: foo

警告:这稍微依赖于实现细节:TypeScript 将枚举编译为 JS 对象,枚举值是对象的成员。如果 TS
决定在未来以不同的方式实现它们,上述技术可能会失效。

2022-03-11