Skip to content

映射类型

映射类型用于基于旧类型批量生成新类型,适合做属性遍历和结构转换。

基本示例

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> 这类工具类型,本质上就是映射类型的典型应用。

基于 MIT 许可发布