如何获取枚举条目的名称? [英] How to get names of enum entries?

查看:90
本文介绍了如何获取枚举条目的名称?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想迭代一个 enum 类型的TypeScript并获取每个枚举的符号名称,例如:

I would like to iterate a TypeScript an enum type and get each enumerated symbol name, e.g.:

enum myEnum { entry1, entry2 }

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


推荐答案

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

The code you posted will work; it will print out all the members of the enum, including the values of the enum members. For example, the following code:

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

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

If you instead want only the member names, and not the values, you could do something like this:

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决定将来以不同的方式实施它们,则上述技术可能会失效。

Caveat: this slightly relies on an implementation detail: TypeScript compiles enums to a JS object with the enum values being members of the object. If TS decided to implement them different in the future, the above technique could break.

这篇关于如何获取枚举条目的名称?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆