Typescript 枚举
数字枚举
当数字枚举没有指定值时,默认从0开始递增
enum Status {
"删除",
"新增",
"更新",
}
console.log(Status.删除); //0
console.log(Status.新增); //1
console.log(Status.更新); //2
指定了具体的值
enum Status {
"删除",
"新增" = 300,
"更新",
}
console.log(Status.删除);
console.log(Status.新增);
console.log(Status.更新);
//0
//300
//301
注意
数字枚举要是使用了计算值或者常量,那后面必须设置初始值
const Status = 1; //因为使用了常量
enum Index {
a = Status,
b, //error枚举成员必须要具有初始化值
c,
}
const getValue = () => {
return 0;
};
enum Index2 {
a = getValue(),
b = 1,
c,
}
反向映射
反向映射是指,枚举成员的值可以反向映射到枚举成员的名称 仅仅支持数字枚举.字符串枚举不支持
enum Status {
Success = 200,
NotFound = 404,
Error = 500,
}
console.log(Status[200]); //'Success'
cosnole.log(Status[Status["Success"]]); // 'Success'
字符串枚举
字符串枚举要求每个字段的值 都必须是字符串字面量
enum Message {
Error = "Sorry,error",
Success = "Great,success",
}
console.log(Message.Error); // 'Sorry,error'
其他例子
enum Message {
Error = "error message",
ServerError = Error,
ClientError = Error,
}
console.log(Message.ServerError); //error message
console.log(Message.ClientError); //error message
既有数字又有字符串的枚举
enum Result {
Faild = 0,
Success = "Success",
}