返回

好拾好晒,Pick解释 Utility Types类型之Pick

前端

序章:术语和意义

TypeScript的Utility Types,或者Utility Types,是一个专门为TypeScript应用程序提供辅助的小工具库。这些辅助功能可帮助程序员操纵类型,高效、方便地构造新的类型。其中,有一个特别强大的工具叫做Pick,它能轻松从现有类型中挑选出特定属性生成新的类型。

初识Pick Utility Type

首先,让我们了解Pick是如何发挥作用的。假设有一个对象类型Animal,它包含name和age两个属性。

interface Animal {
  name: string;
  age: number;
}

现在,我想创建一个新的类型,只包含Animal类型中的name属性。这就是Pick Utility Type的用武之地。

type AnimalName = Pick<Animal, "name">;

通过Pick,我们从Animal类型中挑选了name属性,创建了一个新的类型AnimalName。AnimalName类型只包含一个属性name,而age属性则被舍弃了。

揭秘Pick的工作原理

现在,我们来探究Pick是如何在幕后运作的。实际上,Pick使用了类型交叉和类型别名两种机制来实现其功能。

首先,Pick会将传入的类型(Animal)和一个包含要挑选属性名称的元组("name")组合成一个类型交叉。类型交叉的结果是一个新的类型,它包含了传入类型的所有属性,以及元组中指定的所有属性。

type AnimalAndName = Animal & { name: string };

接下来,Pick使用类型别名将类型交叉的结果重命名为一个新的类型名称(AnimalName)。

type AnimalName = AnimalAndName;

这样一来,我们就得到了一个新的类型AnimalName,它只包含了Animal类型中指定的属性。

Pick的用途何在?

Pick Utility Type在TypeScript中有着广泛的应用场景。它可以帮助我们:

  • 从现有类型中提取特定的属性,创建新的类型。
  • 在函数参数或返回类型中指定特定属性。
  • 对对象进行类型检查,确保其包含指定的属性。

结语

Pick Utility Type是一个非常实用的工具,它可以帮助程序员轻松地从现有类型中挑选出特定的属性,创建新的类型。在TypeScript中,Pick有着广泛的应用场景,可以帮助我们编写更健壮、更灵活的代码。