我想迭代一个 TypeScript 枚举对象并获取每个枚举的符号名称,例如: enum myEnum { entry1, entry2 }
for (var entry in myEnum) { // use entry's name here, e.g., "entry1" }
您发布的代码将起作用;它将打印出枚举的所有成员,包括枚举成员的值。例如,下面的代码:
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 决定在未来以不同的方式实现它们,上述技术可能会失效。