什么是枚举类型,以及它的使用方法
答:
枚举是一个被命名的整型常数的集合,用于声明一组命名的常数。当一个变量有几种可能的取值时,可以将它定义为枚举类型。通俗来说,枚举就是一个对象的所有可能取值的集合。
枚举的形式与联合类型相似:
enum 枚举名 {
标识符①[= 整型常数],
标识符②[= 整型常数],
...
标识符N[= 整型常数]
}
枚举类型可以分成:
数字枚举
当我们声明一个枚举类型时,即使没有给它们赋值,它们的值其实是默认的数字类型,而且默认从 0 开始依次累加:
enum Direction {
Up, // 值默认为 0
Down, // 值默认为 1
Left, // 值默认为 2
Right // 值默认为 3
}
如果我们将第一个值进行赋值,后面的值也会根据前一个值累加 1:
enum Direction {
Up = 10,
Down, // 11
Left, // 12
Right // 13
}
字符串枚举
枚举类型的值也可以是字符串类型:
enum Direction {
Up = 'Up',
Down = 'Down',
Left = 'Left',
Right = 'Right'
}
console.log(Direction['Right'], Direction.Up) // Right Up
如果设定了一个变量为字符串之后,后续的字段也需要赋值为字符串,否则报错:
enum Direction {
Up = 'UP',
Down, // error TS1061: Enum member must have initializer
Left, // error TS1061: Enum member must have initializer
Right // error TS1061: Enum member must have initializer
}
异构枚举
将数字枚举和字符串枚举结合起来混合使用:
enum BooleanLikeHeterogeneousEnum {
No = 0,
Yes = 'YES'
}
通常情况下很少会使用异构枚举。
声明合并
多处定义的同名枚举会进行合并:
enum Direction {
Up = 'Up',
Down = 'Down',
Left = 'Left',
Right = 'Right'
}
enum Direction {
Center = 1
}
来源整理自:vue3js.cn 面试官系列



