TypeScript 面试题
目录

请解释 TypeScript 中的 Pick<T, K> 的作用和实现原理

· 约 2 分钟读完 · 第 125 / 256 章

推荐答案

Pick<T, K> 是 TypeScript 中的一个实用工具类型,用于从类型 T 中选取一组属性 K 来构造一个新的类型。K 是一个字符串字面量或字符串字面量的联合类型,表示要从 T 中选取的属性名。

示例

本题详细解读

实现原理

Pick<T, K> 的实现原理是通过映射类型(Mapped Types)来实现的。TypeScript 提供了内置的 Pick 类型,其定义如下:

  • K extends keyof T:表示 K 必须是 T 的键的子集。
  • [P in K]:遍历 K 中的每一个键 P。
  • T[P]:获取 T 中键 P 对应的类型。

使用场景

Pick<T, K> 通常用于从一个复杂的类型中提取出部分属性,生成一个新的类型。这在处理大型接口或类型时非常有用,可以减少重复代码并提高代码的可维护性。

示例解析

在这个例子中,Pick<User, 'name' | 'email'> 从 User 类型中选取了 name 和 email 两个属性,生成了一个新的类型 UserNameAndEmail。这个新类型只包含 name 和 email 两个属性,类型分别为 string。