为什么 Enum[Enum.member] 在 codepen.io 打字稿游乐场未定义?

时间:2021-06-25 09:40:06

标签: typescript codepen

我只是打算在 codepen.io 上使用 TypeScript playground 检查一些类型设置 并令人惊讶地面临以下

enum Order {
  Asc = 'asc',
  Desc = 'desc'
}

console.log(Order[Order.Asc]); // undefined in codepen.io playground

当然,当使用 webpack 等编译时,它会产生 Asc

1 个答案:

答案 0 :(得分:1)

引用自https://www.typescriptlang.org/docs/handbook/enums.html#reverse-mappings

<块引用>

...一个枚举被编译成一个存储前向(名称 -> value) 和反向 (value -> name) 映射。 [...]
请记住,字符串枚举成员不会获得反向映射 完全生成。

这是反向映射处理数字的方式:

enum Order {
  Asc,
  Desc 
}

Order.Asc // 0
Order[Order.Asc] // "Asc"