枚举反向查找

30 浏览
0 Comments

枚举反向查找

这个问题已经有了答案:

如何在TypeScript中将字符串转换为枚举?

假设我有一个枚举:

enum Color {Red = 1, Green, Blue};

如果我有一个数字,我可以通过这样做来获取枚举键:

var colorName: string = Color[2]; // colorName = "Green"

但是,那会给我一个字符串。我怎样才能使它变成一个Color类型的变量?即:

colorName : Color == Color.Green

admin 更改状态以发布 2023年5月23日
0
0 Comments

不要通过数字索引(这会得到一个字符串),直接使用已命名的成员。Typescript会愉快地让你把数字赋值给枚举变量,例如:

enum Color {Red = 1, Green, Blue};
var foo:Color = Color.Green; // effectively foo = 2;
console.log(foo == Color.Green); // true

或者,如果你已经有了字符串,你可以通过字符串对颜色进行索引,获取其数字值,例如:

enum Color {Red = 1, Green, Blue};
var colorName:string = Color[2];
var color: Color = Color[colorName];
console.log(color == Color.Green); // true

0