条件类型、映射类型与 infer 如何协作完成类型变换
简答题困难592 次浏览
参考答案与解析
# 核心结论
条件类型负责依据可赋值关系选择分支,映射类型负责遍历属性键并重建对象结构,infer负责在条件匹配过程中提取局部类型。三者组合可以从既有类型机械地派生新类型,例如提取异步结果、筛选指定属性、修改属性修饰符、生成事件处理器或重映射属性名。它们适合表达稳定且可解释的类型关系,不应为了追求技巧而形成难以诊断、编译成本过高的类型谜题。
type ElementOf<T> =
T extends readonly (infer Item)[] ? Item : never;
type AsyncResult<T> =
T extends (...args: never[]) => Promise
