【问题标题】:Set explicit initialization for enum in Typescipt在 Typescript 中为枚举设置显式初始化
【发布时间】:2019-07-18 17:02:14
【问题描述】:

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

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

需要类似的东西(知道这行不通),

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

【问题讨论】:

标签: angular typescript enums


【解决方案1】:

在打字稿中,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

【讨论】:

    猜你喜欢
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多