我想迭代一个TypeScript一个枚举
类型,并获取每个枚举的符号名,例如:
enum myEnum { entry1, entry2 }
for (var entry in myEnum) {
// use entry's name here, e.g., "entry1"
}
这里有相当多的答案,考虑到我查了它,尽管这是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的项目数,例如, 或者我必须根据元素的数量实现一个函数?