用于访问集合的typescript常量上下文
使用const上下文,我想保证类型是用于访问集合的typescript常量上下文,typescript,Typescript,使用const上下文,我想保证类型是集合的成员 对阵列执行此操作非常优雅: const values = ['apple', 'banana'] as const type value = typeof values[number] 对于布景,我不知道如何写得如此优雅。以下代码可以工作,但感觉很笨拙: const valueSet = new Set(['apple', 'banana'] as const) type value = typeof valueSet extends Set&l
集合的成员
对阵列执行此操作非常优雅:
const values = ['apple', 'banana'] as const
type value = typeof values[number]
对于布景,我不知道如何写得如此优雅。以下代码可以工作,但感觉很笨拙:
const valueSet = new Set(['apple', 'banana'] as const)
type value = typeof valueSet extends Set<infer U> ? U : never
const valueSet=新设置(['apple','banana']作为const)
类型值=类型值集扩展集?U:从来没有
有没有一种方法可以在不使用三元数的情况下得到相同的结果?也不是很优雅,但是没有三元数:type value=Parameters[number]
推断U版本没有问题,我认为没有更好的了。数组
在number
索引处具有类型为T
的属性,因此可以使用。Set
没有任何这样的属性,只有接受/返回类型为t
的值的方法,因此您需要类似ReturnType
或参数的东西来获取它们,这些方法使用的条件类型中包含推断
。如果要创建类型别名以隐藏它,可以。我不知道该怎么建议。