【发布时间】:2022-11-20 19:25:40
【问题描述】:
与 extends 关键字结合使用时,索引访问类型如何工作?
我无法解释为什么关注 false 的结果是:
type Test<T extends readonly any[]> = T[number] extends true ? true: false
type R = Test<[true,true,false]>
结果:
false
【问题讨论】:
标签: typescript
与 extends 关键字结合使用时,索引访问类型如何工作?
我无法解释为什么关注 false 的结果是:
type Test<T extends readonly any[]> = T[number] extends true ? true: false
type R = Test<[true,true,false]>
结果:
false
【问题讨论】:
标签: typescript
让我们一步一步地完成这个过程。
如果T 是[true,true,false],T[number] 将评估为true | true | false。 TypeScript 方便地将这个并集分解为 boolean。
boolean确实不是扩展 true,因此条件计算结果为返回 false 的假分支。
您可能假设联合会是 distributed 在有条件的情况下。但是 T[number] 不是裸泛型。没有分配发生。
【讨论】: