复刻TS类型检测工具"Pick"

从T中选取K联合类型的键,构造新的类型

用例

interface User {
  id: number;
  age: number;
  name: string;
}
type PickUser = MyPick<User, "id"|"age">
//预期: {id: number, age: number}

实现

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

知识点

  1. keyof T: 获取对象所有键自面量的联合类型;
  2. K extends keyof T: 泛型约束, K 只能是 T 中存在的键;
  3. 映射类型 [P in K]: 遍历联合类型 K, 生成新对象类型;
posted @ 2026-07-06 13:52  一个行走者  阅读(1)  评论(0)    收藏  举报