
上QQ阅读APP看书,第一时间看更新
1.3.3 使用类型别名简化类型声明
类型别名常常与交叉类型和联合类型一起使用。TypeScript允许创建类型别名,使我们不必使用string | number | null这样的引用来让代码变得杂乱不堪。编译器将把类型别名展开成为相应的代码。
假设我们想创建一个类型别名来代表联合类型string | number,则可以使用下面的代码:

对于前面的区间验证示例,我们可以修改函数签名来使用这个别名,如下所示:

在这段代码中,重点要注意的是我们并没有创建任何新的类型。类型别名只是一种语法技巧,用来提高代码的可读性,而且更重要的是,当我们在大型团队中工作时,能够帮助我们创建更加一致的代码。
通过组合类型别名和类型,可以创建出更加复杂的类型别名。如果想要为上面的类型别名添加对null的支持,可以添加下面的类型:

因为编译器看到并使用的仍然是底层的类型,所以可以使用下面的语法来调用IsInRange方法:

显然,这样不能得到看起来非常一致的代码,所以可以将string | number改为StringOrNumber。