通过映射类型,我们可以通过一个旧的类型生成一个新的类型。
比如说把一个类型中的所有属性变成只读。
interface Obj {
a: string,
b: string,
c: string,
}
// 将obj接口里面的属性都变成只读属性
type ReadonlyObj = Readonly<Obj>
// 这样Obj中的属性就都变成只读属性了
type PartialObj = Partial<Obj>
// 这样Obj中的属性就都变成可选属性了
type PickObj = Pick<Obj, 'a' | 'b'>
// 将a b抽取出来,形成一个新的类型
// 上面的映射都是同态类型
// 非同态映射
type RecordObj = Record<'x'|'y',Obj>
源码:/node_modules/typescript/lib/lib.es5.d.ts