是否可以将TypeScript中的枚举值作为数组获取?
赞:
{
"Data":
{
"Publish_Date":"2019-04-25T12:30:00+01:00"
}
}
成为
enum MyEnum {
FOO = 'foo',
BAR = 'bar'
}
答案 0 :(得分:1)
为string
枚举执行此操作的最简单方法是使用Object.values
enum MyEnum {
FOO = 'foo',
BAR = 'bar'
}
console.log(Object.values(MyEnum));
答案 1 :(得分:1)
是的,可以使用:
Object.values(MyEnum)
因为枚举是编译后的JS对象:
var MyEnum;
(function (MyEnum) {
MyEnum["FOO"] = "foo";
MyEnum["BAR"] = "bar";
})(MyEnum || (MyEnum = {}));
答案 2 :(得分:1)
我想说正确的答案应该是Object.values
的结果:
const enumAsArray = Object.values(MyEnum);
enumAsArray.splice(0, enumAsArray.length/2);
答案 3 :(得分:0)
对于完全类型化的代码,您可能希望借助 template literal 运算符将值列表推断为类型:
enum MyEnum {
FOO = 'foo',
BAR = 'bar'
}
type MyEnumValue = `${MyEnum}`
// => type MyEnumValue = "foo" | "bar"
const values: MyEnumValue[] = Object.values(MyEnum)
// => ["foo", "bar"]