Appearance
Readonly
将一个泛型的所有属性都变成只读的(自身)
实现
ts
/**
* Make all properties in T readonly
*/
type MyReadonly<T> = {
readonly [K in keyof T]: T[K]
}
从中可以学到 readonly
和 in
的作用
栗子
ts
const obj = {
name: "张三",
}
Object.defineProperties(obj, {
age: {
enumerable: false,
value: 12,
},
address: {
enumerable: true,
value: "12132",
},
})
// { name : string }
const c: MyReadonly<typeof obj> = {
name: "李四",
}