【问题标题】:Enum reverse lookup [duplicate]枚举反向查找[重复]
【发布时间】:2014-07-17 04:36:39
【问题描述】:

假设我有一个枚举:

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

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

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

但是,这给了我一个字符串。我怎样才能使我得到一个颜色类型的变量呢?即:

colorName : Color == Color.Green

【问题讨论】:

    标签: typescript


    【解决方案1】:

    不要按数字索引它(这会给你一个字符串),而只是使用命名的成员。Typescript 很乐意让你为枚举分配一个数字,即

    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
    

    【讨论】:

      猜你喜欢
      • 2011-07-16
      • 2016-10-14
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      • 2016-09-06
      • 1970-01-01
      • 2011-10-17
      • 2013-09-23
      相关资源
      最近更新 更多