定义
顾名思义,就是按条件给予类型
T extends U ? X : Y
extends是关键字,TUXY均表示一种类型,具体如下所示
type TypeName<T> = T extends string? string: T extends number? number: boolean;
分布式条件类型
在以上语法中,如果类型T是一个裸类型参数,那么该条件类型也称作分布式条件类型 ```typescript // 裸类型参数 type T1
= T extends string ? true : false;
// 非裸类型参数
type T2
- 从字面上理解,裸类型参数是指裸露在外的没有任何装饰的类型参数,如果类型参数不是复合类型的组成部分而是独立出现,那么该类型参数称作裸类型参数<a name="ep05k"></a>## 分布式行为- 与常规类型相比,分布式条件类型具有一种特殊的行为,那就是在实际类型参数实例化分布式条件类型时,如果实际参数类型T为联合类型的话,那么会将分布式条件类型展开为由子条件类型构成大的联合类型```typescripttype T = boolean | number;type Type = T extends U ? X : Y ;// 等同于// type Type = (boolean extends U ? X : Y) | (number extends U ? X : Y);
