前言
其实,之前在讲TS
的类型的时候,我们提到过枚举。
如果不太明白概念,你可以把枚举简单理解为列举
之前例子用到了enum
enum Direction {
NORTH,
SOUTH,
EAST,
WEST,
}
let dir: Direction = Direction.NORTH;
枚举的好处是,我们可以定义一些带名字的常量,而且可以清晰地表达意图或创建一组有区别的用例
TS
支持数字的和基于字符串的枚举,首先来看数字枚举
数字枚举
举例:
enum Direction {
Up = 1,
Down,
Left,
Right
}
这就是一个数字枚举,我们为Up
初始化为1
,剩下的其他会自动从1
开始增长。
当然也可以不用初始化,如下:
enum Direction {
Up,
Down,
Left,
Right,
}
这样默认就是从0
开始自增
那如何使用枚举呢?
答案是,通过枚举的属性来访问枚举成员,和枚举的名字来访问枚举类型。比如我们在说类型时举的例子:
enum Direction {
NORTH,
SOUTH,
EAST,
WEST,
}
let dir: Direction = Direction.NORTH;
字符串枚举
在一个字符串枚举里,每个成员都必须用字符串字面量,或另外一个字符串枚举成员进行初始化。例如:
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}
字符串枚举可以很好的序列化,原因是字符串枚举没有自增长的行为。如果你正在调试并且必须要读一个数字枚举的运行时的值,这个值通常是很难读的,它并不能表达有用的信息,而字符串枚举允许你提供一个运行时有意义的并且可读的值,独立于枚举成员的名字
你可能会想字符串和数字能否混合,需要注意的是,枚举确实可以混合字符串和数字成员,但是一般不建议这样做!
END
以上就是本文的所有内容,如有问题,欢迎指正~