interfacePerson{name:stringage:number}constperson:Readonly<Person>={name:'Lucy',age:22,}// 会报错:Cannot assign to 'name' because it is a read-only propertyperson.name='Lily'
interface Person {
name?: string
age?: number
}
// 使用 Required 映射后返回的新类型,name 和 age 都变成了必选属性
// 会报错:Type '{}' is missing the following properties from type 'Required<Person>': name, age
let person: Required<Person> = {}
type Pick<T, K extends keyof T> = {
[P in K]: T[P]
}