实现MyOmit<T, K>删除对象指定键
删除对象 T 中 K 对应的键
用例
interface User {
id:number;
name: string;
age:number
}
type OmitUser= MyOmit<User, "age">;
//预期:{id:number;name:string}
实现
interface User {
id:number;
name: string;
age:number
}
type MyExclude<T, U> =T extends U ? never: T;
type MyPick<T, K extends keyof T> ={[P in K]:T[P]};
type MyOmit<T, K extends keyof T> = MyPick<T, MyExclude<keyof T, K>>;
type OmitUser =MyOmit<User, "age">
知识点
- 泛型参数: T, U
- 映射类型: [P in K]
- 类型约束: T extends U
- 条件类型: T extends U ? trueType: False (类似JS中的三元表达式)
- 条件类型中的分发特性: MyExclude的实现

浙公网安备 33010602011771号