映射类型就是“遍历一个对象类型的所有 key,生成一个新对象类型”(类型层的 for...in)。
type MyPartial<T> = {
[K in keyof T]?: T[K]
}
type User = { id: number; name: string }
type PUser = MyPartial<User>
// { id?: number; name?: string }
常见用途:批量把字段变成可选、只读、去掉只读、给字段套一层包装等。
- 映射类型:类型层 “遍历 key 生成新类型”