Appearance
映射类型
映射类型:根据旧的类型,创建新的类型
tsx
interface TestInterface {
name: string
age: number
}接口属性全部变为 可选
tsx
// 我们可以通过+/-来指定添加还是删除
type OptionalTestInterface<T> = {
[p in keyof T]+?: T[p]
}
type newTestInterface = OptionalTestInterface<TestInterface>
// type newTestInterface = {
// name?: string,
// age?: number
// }添加只读
tsx
type OptionalTestInterface<T> = {
+readonly [p in keyof T]+?: T[p]
}
type newTestInterface = OptionalTestInterface<TestInterface>
// type newTestInterface = {
// readonly name?: string,
// readonly age?: number
// }