实现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的实现
posted @ 2026-07-15 11:34  一个行走者  阅读(7)  评论(0)    收藏  举报