介绍
创建动态且可重用的代码很重要。Don’t-Repeat-Yourself 规则或 DRY 是在 TypeScript 中编写代码时要遵循的重要原则。使用 TypeScript 别名将帮助您完成此任务。
在本教程中,您将重构使用字符串文字来包含别名的代码。您将能够使用和理解 TypeScript 别名。
先决条件
要成功完成本教程,您需要具备以下条件:
- 您的机器上安装了最新版本的 TypeScript。此如何设置新的 TypeScript 项目教程可以帮助您完成此操作。
- 对字符串字面量的理解。此文章打字稿字符串文字类型是一个伟大的地方开始。
第 1 步 – 使用字符串文字
字符串文字允许我们使用字符串作为类型。创建一个名为的变量pet
,而不是将其设置为与字符串等传统类型相等,而是将其分配'cat'
为类型:
let pet: 'cat';
由于pet
is 的类型'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
. 这是一个变量。使用pet
as 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 知识提升到一个新的水平。这一篇关于打字稿仿制药是一个很好的资源跳进。