TypeScript 枚举

≯℡__Kan透↙ 提交于 2019-11-26 10:04:25

  我们常常会有这样的场景,比如与后端开发约定订单的状态开始是0,未结账是1,运输中是2,运输完成是3,已收货是4。这样的纯数字会使得代码缺乏可读性。枚举就用于这样的场景。枚举可以让我们定义一些名字有意义的常量。使用枚举可以清晰地表达我们的意图。TypeScript支持基于数字枚举和字符串的枚举。

 

⒈数字枚举

  首先我们举例来看数字枚举

enum OrderStatus{
    Start = 1,
    Unpaid,
    Shipping,
    Shipped,
    Complete,
}

  就像上面这样,我们通过数字来表达了订单状态。在实际的代码编写时,我们就直接使用OrderStatus.Start来代替原本的数字1,这就使得代码具备了相当的可读性,甚至可以免去冗余的注释。

  在上面的代码中还使用了一个小技巧,当只写Start = 1时,后面的枚举变量就是递增的,当我们不在乎成员的值的时候,这种自增长的行为是很有用处的,但是要注意每个枚举成员的值都是不同的,但你也可以明确地写出每个枚举变量的数字,这取决于具体的业务场景。

  当我们连第一个枚举变量的值都不写的时候,初始值将会为0,后面的枚举类型再依次递增。

enum OrderStatus{
    Start,
    Unpaid,
    Shipping,
    Shipped,
    Complete,
}

  现在OrderStatus.Start的值为0,通常情况下,在使用这样的写法时,我们其实是不在乎成员变量的具体值的,我们只知道这些值是不同的。

  枚举类型中的值必须是确定的,比如,像下面这样的写法是不被允许的。

enum Example{
    A = hello(),
    b,
}

  类似这样没有给出确定值的写法在TypeScript中都是不被允许的。

 

⒉字符串枚举

  

  

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!