是否可以将 TypeScript 中的枚举值作为数组获取?
像这样:
enum MyEnum {
FOO = 'foo',
BAR = 'bar'
}
Run Code Online (Sandbox Code Playgroud)
变成
['foo', 'bar']
Run Code Online (Sandbox Code Playgroud)
小智 32
是的,可以使用:
Object.values(MyEnum)
Run Code Online (Sandbox Code Playgroud)
因为 enum 是编译后的 JS 对象:
var MyEnum;
(function (MyEnum) {
MyEnum["FOO"] = "foo";
MyEnum["BAR"] = "bar";
})(MyEnum || (MyEnum = {}));
Run Code Online (Sandbox Code Playgroud)
Arn*_*met 12
对于完全类型化的代码,您可能希望借助模板文字运算符将值列表推断为类型:
enum MyEnum {
FOO = 'foo',
BAR = 'bar'
}
type MyEnumValue = `${MyEnum}`
// => type MyEnumValue = "foo" | "bar"
const values: MyEnumValue[] = Object.values(MyEnum)
// => ["foo", "bar"]
Run Code Online (Sandbox Code Playgroud)
参考文章:动态获取枚举的值 (免责声明:作者在此)
为string枚举做这件事的最简单方法是使用Object.values
enum MyEnum {
FOO = 'foo',
BAR = 'bar'
}
console.log(Object.values(MyEnum));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17345 次 |
| 最近记录: |