如何获取枚举条目的名称?
如何获取枚举条目的名称?
我想要遍历一个TypeScript枚举对象并获取每个枚举符号的名称,例如:
enum myEnum { entry1, entry2 }
for (var entry in myEnum) { // use entry's name here, e.g., "entry1" }
admin 更改状态以发布 2023年5月21日
你发布的代码是有效的。它将打印出枚举的所有成员,包括枚举成员的值。例如,以下代码:
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 = Number(enumMember) >= 0 if (isValueProperty) { console.log("enum member: ", myEnum[enumMember]); } }
这将只打印出成员名:
Enum member: bar Enum member: foo
注意:这在某种程度上依赖于实现细节:TypeScript将枚举编译为具有对象成员的JS对象。如果TS在未来决定对它们进行不同的实现,上述技术可能会失效。
虽然答案已经给出,但几乎没有人指向文档
这里有一段片段
enum Enum { A } let nameOfA = Enum[Enum.A]; // "A"
请注意,字符串枚举成员根本不会生成反向映射。