映射类型如何与联合类型和交叉类型协作完成对象模型变换
简答题困难650 次浏览
参考答案与解析
# 核心结论
映射类型负责遍历对象属性并重建结构,联合类型负责表达“多种可能之一”,交叉类型负责表达“同时满足多种要求”。三者协作时,首先要区分三类目标:对对象的每个属性进行统一变换、对联合类型的每个成员分别变换,以及把多个兼容的对象能力组合起来。真正重要的不是类型写得多复杂,而是能否保留属性键、属性值和联合分支之间的对应关系,并排除业务上不允许出现的状态。
type MutableRequired<T> = {
-readonly [K in keyof T]-?: T[K];
};
type Handlers<T extends Record<PropertyKey, unknown>> = {
[
