一、概述
使用枚举我们可以定义一些带名字的常量。 使用枚举可以清晰地表达意图或创建一组有区别的用例。 TypeScript 支持数字的和基于字符串的枚举。
二、枚举类型
1. 数字枚举
enum Direction {
Up, Right, Down, Left
};
默认情况下,Up
值为 0
,Right
值为 1
, Down
值为 2
,Left
值为 3
。
当然你可以指定初始值,比如:
enum Direction {
Up = 1, Right, Down, Left
};
此时枚举中的值,将会从 1
开始排列。
2. 字符串枚举
enum ErrorType {
NO_PARAMS = "参数缺失",
NOT_DEFINED = "未定义",
NOT_FOUNDE = "未找到"
}
3. 反向映射
// 4. 反向映射 - 数字类型
enum _Enum {
SUCCESS = 200,
NOT_FOUNT = 404
}
_Enum[404]; // NOT_FOUNT
4. 常量枚举
const enum Direction {
Up, Right, Down, Left
}
5. 外部枚举
declare enum Enum {
A = 1,
B,
C = 2
}
三、使用场景
枚举使用场景其实也比较多,比如处理后端响应的状态码,有时如果用数字来表示可能比较抽象,后面接手代码的人不容易理解,那如果用枚举来表示,比如:
// -- 定义枚举,记录后端响应的状态码
enum RStatus {
SUCCESS = 0,
UN_LOGIN = -10,
TOKEN_EXPIRED = -20,
MISS_PARAMS = -30
}
// -- 模拟后端返回code
let code = 0;
// -- 根据code做不同的处理
switch (code) {
case RStatus.SUCCESS:
console.log('成功')
break;
case RStatus.UN_LOGIN:
console.log('未登录');
break;
case RStatus.TOKEN_EXPIRED:
console.log('Token 过期');
break;
case RStatus.MISS_PARAMS:
console.log('缺少必要参数');
break;
default: { }
}
这样是不是就清晰多了呢~