【问题标题】:Convert number to enum将数字转换为枚举
【发布时间】:2021-06-12 15:26:23
【问题描述】:
enum SomeEnum {
  a = 10
  b = 20
}

const n: number = 20;

const enumValue: SomeEnum = ???;

有没有一种方法可以将 n 转换为 enumValue 而无需为每个枚举类型编写一个 switch-case。

【问题讨论】:

标签: typescript


【解决方案1】:

是的,有办法:

enum SomeEnum {
  a = 10,
  b = 20
}

const n: number = 20;

const enumValue: SomeEnum = 20; // ok

const enumValue: SomeEnum = 21; // ok, please keep in mind it is unsafe

我鼓励你不要这样做

【讨论】:

  • 你也可以通过枚举类型索引两次来验证数字:const enumValue: SomeEnum | undefined = SomeEnum[SomeEnum[n] as keyof typeof SomeEnum]
  • @E_net4theflagger 不错的方法!
猜你喜欢
  • 2019-03-04
  • 1970-01-01
  • 1970-01-01
  • 2020-08-21
  • 2021-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多