在 TypeScript 中,枚举(Enum)是一种数据类型,用于定义一组具名的常量值。
枚举可以帮助开发人员在代码中使用可读性更强的符号来表示固定的数值或状态。
枚举的定义类似于对象字面量,其中包含一组键值对,键表示枚举成员的名称,值表示枚举成员的值。
数字枚举
enum Color {
Red, // 0
Blue, // 1
Green, // 2
}
let c1:Color = Color.Blue
let c2:Color = 5 // 编译会失败
let c3:Color = "234" // 直接失败
如果是纯数字,下面的会进行自动增长
自动从0开始
enum Color {
Red=100,
Blue, // 101
Green, // 102
Yellow, // 103
}
如果中断了,那么下面的就从中断的地方继续增长
enum Color {
Red=100,
Blue, // 101
Green=103, // 103
Yellow, // 104
}
字符串枚举
它不能自动增长
enum Color {
Red="red",
Blue, // 报错
}
如果是字符串,那么定义的时候就要全部写上
enum Color {
Red="red",
Blue="blue",
}
接口枚举
enum Color {
Red,
Blue,
Yellow
}
interface ColorInter {
color: Color,
blue: Color.Blue
}
let c1: ColorInter = {
color: Color.Red, // 这个color只能是Color里面的值
blue: Color.Blue, // blue就只能写 Color.Blue
}
const枚举
主要作用就是节省因为枚举带来的性能消耗
enum Color {
Red = 2,
Blue,
Yellow
}
interface ColorInter {
color: Color,
blue: Color.Blue
}
let c1: ColorInter = {
color: Color.Red, // 这个color只能是Color里面的值
blue: Color.Blue, // blue就只能写 Color.Blue
}
编译之后
var Color;
(function (Color) {
Color[Color["Red"] = 2] = "Red";
Color[Color["Blue"] = 3] = "Blue";
Color[Color["Yellow"] = 4] = "Yellow";
})(Color || (Color = {}));
var c1 = {
color: Color.Red,
blue: Color.Blue, // blue就只能写 Color.Blue
};
const enum Color {
Red = 2,
Blue,
Yellow
}
interface ColorInter {
color: Color,
blue: Color.Blue
}
let c1: ColorInter = {
color: Color.Red, // 这个color只能是Color里面的值
blue: Color.Blue, // blue就只能写 Color.Blue
}
编译之后
var c1 = {
color: 2 /* Color.Red */,
blue: 3 /* Color.Blue */, // blue就只能写 Color.Blue
};
注释:笔记是一边看b站枫枫视频一边做的笔记