主题
映射类型
映射类型用于基于旧类型批量生成新类型,适合做属性遍历和结构转换。
基本示例
ts
type Keys = 'x' | 'y' | 'z'
type Point = {
[K in Keys]: number
}上面的 Point 等价于:
ts
type Point = {
x: number
y: number
z: number
}基于已有对象类型生成
ts
type User = {
name: string
age: number
}
type BooleanUser = {
[K in keyof User]: boolean
}常见用途
- 批量修改属性类型
- 自定义工具类型
- 基于已有类型派生新类型
Partial<T>、Readonly<T> 这类工具类型,本质上就是映射类型的典型应用。
