学习TypeScript 4 --- 映射类型

65 阅读1分钟

映射类型:基于旧类型创建新类型(对象类型),减少重复,提升开发效率

联合类型

栗子:

// 联合类型
type PropKeys = 'x' | 'y' | 'z'
type Type1 = { x: number; y: number; z: number } // 传统写法

// 映射类型 当类型PropKeys 有改变时, 映射的类型也会跟着改变
type Type2 = { [key in PropKeys]: number } 

解释:

  1. 映射类型是基于索引签名类型的,所以语法比较相似[]
  2. [key in PropKeys]表示key 可以是PropKeys中的任意一个
  3. 映射类型只可以在类型别名中使用,不能在接口中使用

对象类型

需要配合keyof使用

type Props = { a: number; b: number; c: number }
type Type3 = { [key in keyof Props]: number }

解释:

  1. 首先执行keyof,获取到对象类型Props中所有键的联合类型。'a'|'b'|'c'
  2. 然后执行 key in ...就表示key 可以时Props键名称中的任意一个