参考阅读:https://mariusschulz.com/blog/mapped-type-modifiers-in-typescript

简介

TypeScript 的类型映射 - 图1

TypeScript 的类型映射 - 图2

TypeScript 的类型映射 - 图3

TypeScript 的类型映射 - 图4

映射修饰符

映射会原样复制原始对象的**可选属性只读属性**。示例中,类型B是类型A的映射,把A的可选属性和只读属性都保留下来

TypeScript 的类型映射 - 图5

TypeScript 的类型映射 - 图6

键名重映射

语法

TypeScript 的类型映射 - 图7

它的修改键名的代码是一个模板字符串 get${Capitalize},下面是各个部分的解释

  • get:为键名添加的前缀
  • Capitalize:一个原生的工具泛型,用来将T的首字母变成大写
  • string & P:一个交叉类型,其中的P是 keyof 运算符返回的键名联合类型 string|number|symbol,但是Capitalize只能接受字符串作为类型参数,因此 string & P 只返回P的字符串属性名

属性过滤

TypeScript 的类型映射 - 图8

联合类型的映射

TypeScript 的类型映射 - 图9