我只想获取一个枚举的值作为数组。因此,如果您有:
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)
不匹配。
我该怎么做?
答案 0 :(得分:0)
您无法提供的简短答案,因为打字稿会将您的枚举编译为以下内容
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)
之所以可行,是因为枚举不能包含数值作为条目