前端知库

条件类型、infer 和分布式条件类型如何理解?

参考答案

条件类型用 T extends U ? X : Y 表达类型关系。infer 可以在匹配结构的位置提取类型,例如从函数返回值或数组元素中推导组成部分,避免手动重复声明。

当条件左侧是裸类型参数时,传入联合类型通常会对每个成员分别计算,得到结果的联合。这叫分布式条件类型。用元组包裹两侧,如 [T] extends [U],可在需要整体判断时阻止分发。

never、any 和重载函数等边界容易产生意外结果,应写类型测试验证实际推导。过度递归的类型运算会增加编译耗时,公共 API 应优先保持错误信息可理解,而不是追求最大程度的类型技巧。