基础定义
- 枚举属于类型
enum Sex {
Man, // 末尾带逗号分隔
Women
}
复制代码
数字枚举
- 数字枚举,根据初始化值,自增设置属性值
- 初始化值可选,默认为 0
enum Status{
success = 0,
fail
}
console.log(Status[0], Status.success)
复制代码
字符枚举
- 字符枚举没有自增行为,所以需要为每一属性设置值
enum Status{
success = 'success'
fail = 'fail'
}
复制代码
常量成员
- 第一成员没有初始化器
enum E { X } // x 不到初始化器
复制代码
- 它不带有初始化器且它之前的枚举成员是一个 数字常量
enum E { A = 1, B } // B 不带初始化器且之前的枚举成员是数字
复制代码
常量枚举表达式
满足一下条件之一的表达式,其枚举值为常量成员
- 一个枚举表达式字面量(主要是字符串字面量或数字字面量)
- 一个对之前定义的常量枚举成员的引用(可以是在不同的枚举类型中定义的)
- 带括号的常量枚举表达式
- 一元运算符 +, -, ~其中之一应用在了常量枚举表达式
- 常量枚举表达式做为二元运算符 +, -, *, /, %, <<, >>, >>>, &, |, ^的操作对象。 若常数枚举表达式求值后为 NaN或 Infinity,则会在编译阶段报错。
枚举成员类型
- 不带有初始值的常量枚举成员
- 任何字符串字面量(例如: “foo”, “bar”, “baz”)
- 任何数字字面量(例如: 1, 100)
- 应用了一元 -符号的数字字面量(例如: -1, -100)
enum ShapeKind {
Circle,
Square,
}
// 使用枚举成员作为类型定义
interface Circle {
kind: ShapeKind.Circle;
radius: number;
}
interface Square {
kind: ShapeKind.Square;
sideLength: number;
}
let c: Circle = {
kind: ShapeKind.Square,
// ~~~~~~~~~~~~~~~~ Error!
radius: 100,
}
复制代码
const 枚举
const enum Enum {
A = 1,
B = A * 2
}
复制代码
外部枚举
外部枚举用来描述已经存在的枚举类型的形状
declare enum Enum {
A = 1,
B,
C = 2
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END