export enum Animals {
Cow,
Pig
}
我有一个接收枚举的功能:
export function printEnumName(Enum: any) {
console.log(someFancyFunctiontoPrintMyEnumName(Enum)); //It should print the enum's name "Animals"
}
我想实现那个花哨的功能,以避免通过参数发送它。
修改 我不想打印动物中的变量,就像我在控制台日志上的评论行(也在帖子的标题上)所提到的那样我要打印"动物"枚举的名称不是接收动物作为参数的函数上的枚举变量。 我尝试使用这种方法进行打印,但它没有起作用:
export function printEnumName(Enum: any) {
for (let element in this.printEnumName) {
console.log(element); //It would be nice to print "Animals" literally animals
}
}
答案 0 :(得分:0)
他们对枚举https://www.typescriptlang.org/docs/handbook/enums.html有很好的描述。
只需访问枚举密钥。
Animals.Cow
要获取姓名,请尝试
Object.keys(Animals).filter((v) => {
return isNaN(parseInt(v));
});
答案 1 :(得分:0)
查看转换为JavaScript后enum的内容是有帮助的:
var Animals;
(function (Animals) {
Animals[Animals["Cow"] = 0] = "Cow";
Animals[Animals["Pig"] = 1] = "Pig";
})(Animals || (Animals = {}));
Animals
成为常规变量。要获取其名称,您可以应用您应用的任何方法来获取JavaScript中的变量名称,例如Object.keys({Animals})[0]
。
有关该主题的更多讨论:Variable name as a string in Javascript