我们常常会有这样的场景,比如与后端开发约定订单的状态开始是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中都是不被允许的。
⒉字符串枚举
来源:https://www.cnblogs.com/fanqisoft/p/11933327.html