// Pick 取出来 - 两个参数 第一个对象类型 第二个是取什么属性
// Omit 排除掉 - 两个参数 第一个对象类型 第二个是排除什么属性
// Partial 把所有的属性改成可选 - 只有一个参数,把对象类型所有字段变成可选
// Required 把所有的属性改成必选 - 只有一个参数 把对象类型所有字段变成必选
type MyObj = {
a: number
b: string
c: boolean
d: object
}
// Utility Type 工具类型函数 都是通过ts编程实现的 类型编程
// 泛型 - 类型传参 - 所以ts有可以编程的能力
// Pick 只取a和c
// eslint-disable-next-line @typescript-eslint/no-unused-vars
type PickObj = Pick<MyObj, 'a' | 'c'>
// Omit 排除a和c
// eslint-disable-next-line @typescript-eslint/no-unused-vars
type OmitObj = Omit<MyObj, 'a' | 'c'>
// Partial - 所有字段变成可选
type PartialObj = Partial<MyObj>
// Required - 所有字段变成必选
// eslint-disable-next-line @typescript-eslint/no-unused-vars
type RequiredObj = Required<PartialObj>
11-11
11-11
11-11