当前位置: 首页 > 知识库问答 >
问题:

如何获取枚举项的名称?

范翰飞
2023-03-14

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

enum myEnum { entry1, entry2 }

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

共有1个答案

袁帅
2023-03-14

这里有相当多的答案,考虑到我查了它,尽管这是7年前的问题,我猜测更多的人会来这里。下面是我的解决方案,它比其他解决方案简单一点,它处理纯数字/纯文本/混合值枚举,所有这些都是一样的。

enum funky {
    yum , tum='tum', gum = 'jump', plum = 4
}

const list1 = Object.keys(funky)
  .filter(k => (Number(k).toString() === Number.NaN.toString()));
console.log(JSON.stringify(list1)); // ["yum","tum","gum","plum"]" 

 // for the numeric enum vals (like yum = 0, plum = 4), typescript adds val = key implicitly (0 = yum, 4 = plum)
 // hence we need to filter out such numeric keys (0 or 4)
 
 类似资料:
  • 我应该工作,对吧?但它不是!!!!它告诉我dbValue可以转换为RelationActiveEnum...

  • 但我的代码不起作用,它说类型没有定义:

  • 问题内容: 如果我有一个带有原始值的枚举: 如何将值转换为字符串?语言中是否可用这种类型名称自省? 类似的东西(此代码将不起作用): 问题答案: 从Xcode 7 beta 5(Swift版本2)开始,您现在可以默认使用来打印类型名称和枚举大小写,或者使用的初始值设定项或字符串插值语法转换为。因此,对于您的示例: 因此,不再需要定义和维护一个方便函数,该函数在每种情况下都可以打开以返回字符串文字。

  • 在Dart中提供枚举之前,我编写了一些繁琐且难以维护的代码来模拟枚举,现在我想简化它。我需要以字符串形式获取枚举的名称,例如可以用Java完成,但不能。 例如,小测试代码片段返回'day。星期一“在每种情况下,我想要的是”星期一” 我是否正确,要获得“星期一”,我需要解析字符串?

  • 是否有一种内置的方法来获取Enum的项目数,例如, 或者我必须根据元素的数量实现一个函数?