返回

从 Pick 和 Exclude 探索 TypeScript 泛型工具的强大功能

前端

TypeScript 的强大之处在于其类型系统,使我们能够精确地定义和操作数据类型。泛型工具,例如 Pick 和 Exclude,使我们能够以灵活的方式操作类型,从而提高代码的可维护性和重用性。

泛型工具概述

泛型工具是带有类型参数的函数或接口,它们允许我们创建可用于各种类型的可重用代码。这为我们提供了创建模块化和灵活的应用程序的机会。

了解 Pick

Pick 泛型工具用于从类型中选择一组属性来创建新类型。其语法如下:

Pick<T, K>

其中:

  • T: 要从中选择属性的类型。
  • K: 要选择属性的键组成的联合类型。

例如,我们从 User 类型中选择 name 和 age 属性:

interface User {
  name: string;
  age: number;
  city: string;
}

type UserSelection = Pick<User, "name" | "age">;

UserSelection 类型现在具有 name 和 age 属性,而没有 city 属性。

深入理解 Exclude

Exclude 泛型工具用于从类型中排除一组属性来创建新类型。其语法如下:

Exclude<T, K>

其中:

  • T: 要从中排除属性的类型。
  • K: 要排除属性的键组成的联合类型。

例如,我们从 User 类型中排除 city 属性:

type UserWithoutCity = Exclude<User, "city">;

UserWithoutCity 类型现在具有 name 和 age 属性,但不具有 city 属性。

实践案例

场景 1:创建仅包含必要字段的 DTO(数据传输对象)

我们可以使用 Pick 泛型工具仅选择要发送到 API 端点的相关属性。这有助于防止发送不必要的或敏感数据。

场景 2:强制实施 API 请求有效负载验证

我们可以使用 Exclude 泛型工具确保 API 请求有效负载不包含任何未定义或多余的属性。这有助于提高请求的可靠性和安全性。

场景 3:创建可重用的工具函数

我们可以使用 Pick 和 Exclude 泛型工具创建可用于不同类型数据的工具函数。这提高了代码的重用性,减少了维护工作。

结论

Pick 和 Exclude 等泛型工具为 TypeScript 开发人员提供了强大的工具,使他们能够操纵类型并创建灵活和可维护的代码。通过了解这些工具的强大功能,我们可以解锁新的可能性,为我们的应用程序带来更高的质量和效率。