How to reverse typing on a typescript enum?

心已入冬 提交于 2021-01-29 13:43:27

问题


Given an enum in typescript

enum CoffeeSizes {
  Large = 'L',
  Medium = 'M',
  ExtraLarge = 'XL',
}

CoffeeSizes.Large === 'L' // true

How do I do the reverse lookup, where I can say

CoffeeSizes.L === 'Large'

How can I create a type with the inverse enum?


回答1:


Reverse mappings are only possible for numeric non const enums.
As in the example below

enum CoffeeSizes {
  Large,
  Medium,
  ExtraLarge
}

const nameOffLargeCoffeeSize = CoffeeSizes[CoffeeSizes.Large];
CoffeeSizes[nameOffLargeCoffeeSize] === CoffeeSizes.Large;

You can get more details in TypeScript docs



来源:https://stackoverflow.com/questions/57966858/how-to-reverse-typing-on-a-typescript-enum

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!