其他分享
首页 > 其他分享> > 学习TypeScript25(TS进阶用法Record & Readonly)

学习TypeScript25(TS进阶用法Record & Readonly)

作者:互联网

Readonly

我们昨天学的Partial 很像只是把? 替换成了 Readonly

type Readonly<T> = {
    readonly [P in keyof T]: T[P];
};

keyof 是干什么的?

in 是干什么的?

Readonly 是将该属性变为只读

T[P] 是干什么的?

1 keyof我们讲过很多遍了 将一个接口对象的全部属性取出来变成联合类型

2 in 我们可以理解成for in P 就是key 遍历 keyof T 就是联合类型的每一项

3 Readonly 这个操作就是将每一个属性变成只读

4 T[P] 索引访问操作符,与 JavaScript 种访问属性值的操作类似
 

Record

type Record<K extends keyof any, T> = {
    [P in K]: T;
};

1 keyof any 返回 string number symbol 的联合类型

2 in 我们可以理解成for in P 就是key 遍历 keyof any 就是string number symbol类型的每一项

3 extends来约束我们的类型

4 T 直接返回类型

做到了约束 对象的key 同时约束了 value

标签:TypeScript25,进阶,TS,Record,Readonly,keyof,key,类型,属性
来源: https://blog.csdn.net/qq1195566313/article/details/122758713