条件类型与 infer 如何从复杂类型中提取信息
简答题困难459 次浏览
参考答案与解析
# 核心结论
条件类型通过可赋值关系在类型层面选择结果,基本形式为 T extends U ? X : Y。infer 只能出现在条件类型的匹配模式中,用于声明一个局部待推断类型变量。它适合从函数、数组、元组、异步值等已知结构中提取信息。使用时必须明确两个问题:被检查类型为联合类型时是否需要逐成员分发,以及结构不匹配时应返回 never、原类型还是保底类型。
type ElementOf<T> = T extends readonly (infer U)[] ? U : never;
type AsyncValue<T> = T extends PromiseLike<infer U> ? Async
