枚举反向查找

时间:2014-05-28 05:27:21

标签: typescript

假设我有一个枚举:

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

如果我有一个号码,我可以通过这样做获得枚举键:

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

然而,这给了我一个字符串。我怎样才能使它得到Color类型的变量?即:

colorName : Color == Color.Green

1 个答案:

答案 0 :(得分:5)

不要用数字对它进行索引(这会给你一个字符串),只需使用命名成员。你可以高兴地让一个数字给一个枚举,即

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

var foo:Color = Color.Green; // effectively foo = 2;
console.log(foo == Color.Green); // true

或者如果你已经有了字符串,你可以用字符串索引Color来得到它的数字,即:

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

var colorName:string = Color[2];
var color: Color = Color[colorName];
console.log(color == Color.Green); // true