【发布时间】:2019-09-18 18:49:55
【问题描述】:
所以我知道keyof typeof <enum> 返回枚举的所有可能键的类型,这样给定
enum Season{
WINTER = 'winter',
SPRING = 'spring',
SUMMER = 'summer',
AUTUMN = 'autumn',
}
let x: keyof typeof Season;
等价于
let x: 'WINTER' | 'SPRING' | 'SUMMER' | 'AUTUMN';
我的问题是如何获得与枚举的可能值之一等效的类型,例如:
let x: 'winter' | 'spring' | 'summer' | 'autumn';
【问题讨论】:
-
Season类型等于枚举对象值的并集,尽管Season是'winter' | 'spring' | 'summer' | 'autumn'的子类型。Season不适合你吗? (例如,declare let s: Season; let x: 'winter' | 'spring' | 'summer' | 'autumn' = s;) -
这个链接提供了很好的解释stackoverflow.com/questions/52393730/…
-
@jcalz 我做不到
let x: Season = 'winter'; -
你能解释一下为什么你需要访问枚举的裸字符串文字版本吗?例如,为什么不直接使用本质上相同的
let x: Season = Season.WINTER?即使你能做到let x: Magic<Season> = 'winter',你会用它做什么?我想在这里看到更多的用例
标签: typescript