如何在 TypeScript 中使用类型别名

介绍

创建动态且可重用的代码很重要。Don’t-Repeat-Yourself 规则或 DRY 是在 TypeScript 中编写代码时要遵循的重要原则。使用 TypeScript 别名将帮助您完成此任务。

在本教程中,您将重构使用字符串文字来包含别名的代码。您将能够使用和理解 TypeScript 别名。

先决条件

要成功完成本教程,您需要具备以下条件:

第 1 步 – 使用字符串文字

字符串文字允许我们使用字符串作为类型。创建一个名为的变量pet,而不是将其设置为与字符串等传统类型相等,而是将其分配'cat'为类型:

let pet: 'cat';

由于petis 的类型'cat',它只需要 的值'cat'任何其他值都会导致error

pet = 'cat'; // Ok
pet = 'dog'; // Compiler error

在上面的代码片段中,赋值pet'dog'会导致错误,因为 的唯一有效值pet'cat'

与联合类型一起使用时,字符串文字变得更加强大。联合类型用于定义可以是多种类型的值。对于联合类型,|字符用于分隔不同的可能类型:

let pet: 'cat' | 'dog';

pet变量现在可以采用'cat''dog'作为值。分配pet给任何其他字符串值将导致错误:

pet = 'cat'; // Ok
pet = 'dog'; // Ok
pet = 'zebra'; // Compiler error

您可以在本文中了解有关联合类型的更多信息

pet它本身不是一个type. 这是一个变量。使用petas atype会产生错误。

let gator: pet; // error: 'pet' refers to a value, but is being used as a type here

由于pet不是有效类型,因此'cat' | 'dog'必须再次重复类型。这会使您的代码不必要地重复。使用类型别名可以解决这个问题。

第 2 步 – 使用类型别名

要实现类型别名,请使用type关键字创建一个新的type. 使用type声明pet的类型:

type pet = 'cat' | 'dog';

通过创建 a type,您可以pet在代码中的任何地方使用,就像它是 a number、字符串或任何原始类型或引用类型一样:

let pet1: pet = 'cat';
let pet2: pet = 'dog';

任何未声明为pet类型一部分的值都将导致错误:

let gator: pet = "horse"; // error

前面的示例type与字符串值一起使用。但是 atype可以用于任何类型。

type num = 1 | 2; // number
type bool = true | false; // boolean
type obj = {a: 1} | {b: 2}; // object
type func = (() => string) | (() => void); // function

现在您知道如何使用类型别名type,您可以使您的代码更通用且更少重复。

结论

在本文中,您使用了 TypeScript 类型别名来重构代码。使用type可以帮助您创建没有不必要重复的干净代码。

下一步,您可能希望通过学习泛型将您的 TypeScript 知识提升到一个新的水平。一篇关于打字稿仿制药是一个很好的资源跳进。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁