将一个类型作为参数,将其赋值给另外一个类型变量。
通过keyof
就可以遍历键名创建出一个新类型
type Animal = {
name: string,
age : string,
}
type MapAnimal<T> = {
[key in keyof T]: [key]
}
type AnotherAnimal = MapAnimal<Animal>
readonly
,设置属性只读
?
,设置属性可选
配合映射类型修饰符,可以对类型进行一些修改
为属性增加readonly
且改为可选
type Animal = {
name: string,
age : string,
}
type MapAnimal<T> = {
readonly [key in keyof T]?: [key]
}
type AnotherAnimal = MapAnimal<Animal>
为属性去除readonly
且改为必选
type Animal = {
name: string,
age : string,
}
type MapAnimal<T> = {
-readonly [key in keyof T]-?: [key]
}
type AnotherAnimal = MapAnimal<Animal>