在Typescript中,我得到了一个包含我定义的枚举名称的
现在我该如何获取此枚举的所有值?
string
变量。现在我该如何获取此枚举的所有值?
string
变量。Typescript 枚举:
enum MyEnum {
First, Second
}
被转译为JavaScript对象:
var MyEnum;
(function (MyEnum) {
MyEnum[MyEnum["First"] = 0] = "First";
MyEnum[MyEnum["Second"] = 1] = "Second";
})(MyEnum || (MyEnum = {}));
window["EnumName"]
获取 enum
实例:const MyEnumInstance = window["MyEnum"];
下一步可以使用以下方式获取枚举成员的值:
const enumMemberValues: number[] = Object.keys(MyEnumInstance)
.map((k: any) => MyEnumInstance[k])
.filter((v: any) => typeof v === 'number').map(Number);
使用以下格式定义枚举成员名称:
const enumMemberNames: string[] = Object.keys(MyEnumInstance)
.map((k: any) => MyEnumInstance[k])
.filter((v: any) => typeof v === 'string');
window
方法的替代方案,可以按照以下步骤进行操作:enum SomeEnum { A, B }
let enumValues:Array<string>= [];
for(let value in SomeEnum) {
if(typeof SomeEnum[value] === 'number') {
enumValues.push(value);
}
}
enumValues.forEach(v=> console.log(v))
//A
//B