TypeScript语言学习笔记(4)枚举

枚举

// 数值型枚举
enum Direction {
    Up = 1,
    Down,
    Left,
    Right,
}
// Up=0
enum Direction {
    Up,
    Down,
    Left,
    Right,
}
// 使用枚举
enum Response {
    No = 0,
    Yes = 1,
}
function respond(recipient: string, message: Response): void {
    // ...
}
respond("Princess Caroline", Response.Yes)
// 使用计算量初始化的枚举值之后的枚举值不能没有初始化器
enum E {
    A = getSomeValue(),
    B, // Error! Enum member must have initializer.
}
// 字符串枚举
enum Direction {
    Up = "UP",
    Down = "DOWN",
    Left = "LEFT",
    Right = "RIGHT",
}
// 混合型枚举
enum BooleanLikeHeterogeneousEnum {
    No = 0,
    Yes = "YES",
}

常量枚举值和计算量枚举值

// 常量枚举值的三种情况
// 1. 枚举中第一个成员,如果不带初始化器,其值为 0。
// E.X is constant:
enum E { X }
// 2. 不带初始化器并且前一个成员为数值型常量,则其值为前一个成员的值加一。
// All enum members in 'E1' and 'E2' are constant.
enum E1 { X, Y, Z }
enum E2 {
    A = 1, B, C
}
// 3. 使用常量表达式初始化的枚举值
// 其他情况则属于计算量枚举值
enum FileAccess {
    // constant members
    None,
    Read    = 1 << 1,
    Write   = 1 << 2,
    ReadWrite  = Read | Write,
    // computed member
    G = "123".length
}

猜你喜欢

转载自www.cnblogs.com/zwvista/p/12008959.html