typescript

71 阅读1分钟

1. Partial(取部分属性,属性为可选)

e144b64a3063557f86d68d010a01e9c.png

2. Required(必须的,属性为必选) dd3bbdaae479c4d776cb888782b29e2.png

3. Omit(从属性中删除)

5c2662d3884914d444af03772dc7858.png

4. Pick(选取属性)

3159139788339bbf8b97a221e01f352.png

4.1 Partial+Pick

db902fa114f5b119fd0b12adf27570d.png

4.2Omit+Partial+Pick

c795d224d80d3a434c714639fa722c4.png

5. Readonly(只读)

49afcea3b2b87a9d4b198581a38c012.png

6. Mutable(将只读改为可变)

0221a923b5823be4b218c96dc54dea8.png

7. Exclude(排除,从大类里面排除一些归一个小类)

caaed3f03081d9a8a2986b4f3bee3f7.png

 

Omit与Exclude的区别是什么?

都是删除属性的,但是Exclude的参数类型没有限制,可以是字面量也可以是具体的类型如string、boolean等,而Omit的第二参数则必须是第一参数的子属性

一般Omit用对象,exclude用具体类型

keyOf:

80d13ab12a8452f0e6be7e824d1a92e.png

exclude从所有属性T中剔除不要的属性K(得到需要的属性),再从T(所有属性)中选取需要的属性即可

Omit=Pick<T,Exclude<keyof T,K>>

4cb3373fc031bc766ad5cd3b8c16ee8.png

  6b17a4c105100eafd4e3ffee66eb52b.png

 

8. Extract(选取)

08065b60b89e2e696fcb996bae6aac1.png

14c961fc2d7364aa5a8b3baeb425726.png

230bbf6649b3c73a4cc8359c782406b.png