面试题答案
一键面试type ElementType<T> = T extends (infer E)[] ? E : never;
条件类型分发的作用:
在上述代码中,T extends (infer E)[]
是条件类型判断部分。infer E
用于推断出数组 T
的元素类型 E
。当 T
是一个数组类型时,条件成立,返回推断出的元素类型 E
;如果 T
不是数组类型,条件不成立,返回 never
。条件类型分发会在使用该类型时,针对联合类型的每个成员分别进行条件判断,例如当 T
是联合数组类型 number[] | string[]
时,会分别对 number[]
和 string[]
进行判断,返回 number | string
,实现对数组元素类型的准确提取。