《TypeScript实战指南》—2.2.5 类型别名

举报
华章计算机 发表于 2019/06/16 12:40:36 2019/06/16
【摘要】 本节书摘来自华章计算机《TypeScript实战指南》一书中的第2章,第2.2.5节,作者是胡桓铭。

2.2.5 类型别名

简而言之,类型别名就是可以给一个类型起一个新名字。

如果你学过 C 语言,可能还记得 alias 关键字,不过在 TypeScript 中,我们使用 type 关键字来描述类型变量:

type Age = number;

type AgeCreator = () => Age;

 

function getAge(arg: AgeCreator): Age {

    return arg();

}

使用别名并不会在类型系统中新建一个基本类型,当然新建基本类型也是永远不可能的。使用别名只是为某个类型或者类型集合创建了一个新名字。虽然给基本类型起一个别名通常没什么用,但大家还是热衷于这么做,因为这样可以减少文档的编写量。谁会喜欢写文档呢!

当然,类型别名也可以是泛型:

type Person<T> = { age: T };

也可以使用类型别名在属性里引用自己,这听起来很像递归:

type Person<T> = {

    name: T;

    mother: Person<T>;

    father: Person<T>;

}

这使得类型编排非常复杂。当然,这种复杂性是为了描述的准确性。正如上面的例子,mother 和 father肯定也是 person。这样在代码中看上去有点不可思议的操作,在现实世界中却是非常真实合理的。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。