将枚举值转换为数组
- 论坛
- 将枚举值转换为数组
22 浏览
将枚举值转换为数组
这个问题已经有答案了:
我想要将枚举的值作为数组获取。如果你有:
enum A { dog = 1, cat = 2, ant = 3 }
我想要的结果是:[\"dog\", \"cat\", \"ant\"]
,通过以下方式:
Object.values(A)
但是它会得到:[\"dog\", \"cat\", \"ant\", 0, 1, 2]
此外,返回的值(0, 1, 2)
也不会匹配给定的值(1, 2, 3)
。如何实现这个功能?
admin 更改状态以发布 2023年5月22日
匿名的
0 Comments
简短的回答是,你不能这样做,因为TypeScript会将你的枚举编译成以下内容
var A; (function (A) { A[A["dog"] = 1] = "dog"; A[A["cat"] = 2] = "cat"; A[A["ant"] = 3] = "ant"; })(A || (A = {}));
然而,由于枚举不能具有数字键,你可以采用以下方法获取键
Object.keys(A).filter(isNaN)
这是有效的,因为枚举不能将数字值作为条目包含在内