为Typescipt中的枚举设置显式初始化

时间:2019-07-18 17:02:14

标签: angular typescript enums

如何为enum中的以下typescript设置显式初始化?

enum BloodGroup {
    OPositive = "O +ve", 
    ONegative = "O -ve", 
    APositive = "A +ve", 
    ANegative = "A -ve", 
}

需要类似的东西(知道这不起作用)

enum BloodGroup {
    OPositive = "O +ve" = 1
}

1 个答案:

答案 0 :(得分:4)

在打字稿中,enums are represented as values on an object。与基于Java的枚举不同,每个条目都不是其自己的对象实例,并且条目也不保存在数组中,否则该数组会给出一个方便的“数字”(在Java中,该数字也是从零开始的,并且会自动赋值而不会覆盖)。有了这些,本地枚举就不可能同时具有字符串值和整数值。

不过,您可以单独保留这些值:

enum BloodGroup {
    OPositive = 1, 
    ONegative = 2, 
    APositive = 3, 
    ANegative = 4, 
}

function labelForBloodGroup(group: BloodGroup) {
  switch (group) {
  case BloodGroup.OPositive:
    return "O +ve";
  case BloodGroup.ONegative:
    return "O -ve";
  case BloodGroup.APositive:
    return "A +ve";
  case BloodGroup.ANegative:
    return "A -ve";
  }
}

link to playground