type IsFirstTrue<T extends unknown[]> =
T extends [infer First, ...infer Rest]
? First extends true
? true
: false
: false
// let a: boolean
let a: IsIndexedTypeTrue<[boolean]>
我尝试创建一个IsFirstTrue
类型,它检查数组类型的第一个元素是否是true
类型。
对于类型[boolean]
作为输入,结果类型应该计算为false
,因为它的第一个类型不是true
类型,但它计算为boolean
,这是奇怪的,因为在代码中boolean
类型没有偶数声明,只有true
或false
。为什么会发生这种情况?
1条答案
按热度按时间nuypyhwy1#
请注意,
boolean
既不是true
也不是false
(它是两者的并集的表示):TSPlayground
我想你可能在寻找这样的东西:
TSPlayground