问题
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