【发布时间】:2017-06-21 09:49:56
【问题描述】:
我正在尝试在 typescript 中提取数字枚举的枚举成员,但 window[name] 确实返回了一个未定义的对象。
export enum MyEnum {
MemberOne = 0,
MemberTwo = 1
}
export class ObjectUtils {
public static GetEnumMembers(name: string): Array<string> {
let enumInstance = window[name];
return Object.keys(enumInstance).map((k: any) => enumInstance[k]).filter((x: any) => typeof (x) == "string");
}
}
所以现在我这样调用 GetEnumMembers 方法:
ObjectUtils.GetEnumMembers("MyEnum");
enumInstance 结果未定义。
编辑: 我想返回一个带有 ["MemberOne", "MemberTwo"]
的字符串数组【问题讨论】:
-
请提供一个最小但完整的示例来说明您正在做什么。提供的代码 sn-p 留下未回答的问题。
-
你能确定
window[name]是什么,不是undefined吗? -
window.MyEnum未定义,因为导出未存储在window上。检查 TypeScript 编译器生成的 JavaScript 代码。 -
抱歉,您知道如何解决我的问题吗?
-
您可以传入枚举本身,而不仅仅是其名称。不确定这是否适合您。
标签: javascript typescript enums