做题的思路,先按照js的方式实现一遍(足够耐心)
1:返回一个对象
2: 遍历一个对象(js遍历的是对象 ts遍历的是接口)
3: 加上 readonly 关键字
4. 通过key来获取obj里面的值(ts中就是接口的值)
function readonly (obj) {
const result={};
for(const key in obj){
result["readonly"+key] = obj[key];
}
return result;
}
console.log(readonly({name:"NIHAO"}))
思路理完了,开始写ts
1. 返回一个类型
2. 遍历这个接口
3. 通过key来获取接口的值
4. 加上readonly关键字
type MyReadonly<T> = {
readonly [P in keyof T]:T[P];
};
// 概念辩证:keyof 返回的是联合类型 也就是常见的 a|b|c
过啦@!