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

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

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

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


拉莫斯之舞
浏览 1111回答 3
3回答

哔哔one

您发布的代码将起作用; 它将打印出枚举的所有成员,包括枚举成员的值。例如,以下代码:enum myEnum { bar, foo }for (var enumMember in myEnum) {    console.log("enum member: ", enumMember);}将打印以下内容:Enum member: 0Enum member: 1Enum member: barEnum member: foo如果您只想要成员名而不是值,则可以执行以下操作:for (var enumMember in myEnum) {    var isValueProperty = parseInt(enumMember, 10) >= 0    if (isValueProperty) {       console.log("enum member: ", myEnum[enumMember]);    }}这将打印出名称:Enum成员:酒吧Enum成员:foo警告:这稍微依赖于实现细节:TypeScript将枚举值编译为JS对象,枚举值为对象的成员。如果TS决定将来实施它们不同,上述技术可能会破裂。

GCT1015

虽然已经提供了答案,但几乎没有人指出这些文档这是一个片段enum Enum {     A}let nameOfA = Enum[Enum.A]; // "A"

慕森王

假设您遵守规则并仅生成具有数值的枚举,则可以使用此代码。这正确地处理了您的名称恰好是有效数字的情况enum Color {    Red,    Green,    Blue,    "10" // wat}var names: string[] = [];for(var n in Color) {    if(typeof Color[n] === 'number') names.push(n);}console.log(names); // ['Red', 'Green', 'Blue', '10']
打开App,查看更多内容
随时随地看视频慕课网APP