J-DuYa / DY-Book

迁移知识点

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

说说对 typescript 中枚举的理解?还有在实际场景中是如何使用?

J-DuYa opened this issue · comments

1. 枚举是什么?

枚举是一个对象所有值的集合。使用关键字 enum 进行定义。

2. 如何使用

枚举分为三种类型:数字枚举字符串枚举异构枚举

  • 数字枚举
    例如我们定义方向的上下左右可以如下定义:
enum Direction {
  Up,
  Down,
  Left,
  Right,
}

这时候没有被赋予值,那么它的数据类型默认为数字类型,从 0 开始。
如果想自己定义为某些数字值,可以如下定义:

enum Direction {
  Up = 11,
  Down,
  Left,
  Right,
}
  • 字符串枚举
enum Direction {
  Up = 'up',
  Down = 'down',
  Left = 'left',
  Right = 'right',
}

第一个值什么为字符串之后,就不能与定义为数字值了,必须都是字符串类型。
image

  • 异构枚举
    即将数字枚举和字符串枚举结合起来混合起来使用,但是一旦定义字符类型之后,之后必须手动的赋予值,不然也会出错。
enum Direction {
  Up = 1,
  Down = 'down',
}

多处声明相同枚举,可以进行合并,但是不能重复申明枚举里面的值

3. 应用场景

可以根据后端返回的接口 code 定义,枚举进行接收。
可以根据错误场景定义不同的枚举值。