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