我爱编程

TypeScript学习-Enums

2017-07-01  本文已影响26人  指尖泛出的繁华

Enums使得我们能够定义有名字的数字常量集

enum Direction {
    Up = 1,
    Down,  // 2
    Left,  // 3 以此类推
    Right
}

枚举体包含0个或多个枚举成员。枚举成员都对应一个数字值,这个数字值可以是constant或者computed

一个枚举值是constant,满足一下条件

其他情况下的枚举成员都认为是被计算的

enum FileAccess {
    // constant members
    None,
    Read    = 1 << 1,
    Write   = 1 << 2,
    ReadWrite  = Read | Write,
    // computed member
    G = "123".length
}

一个枚举在运行时实际上是一个对象。


const enum

大多数情况上使用regular enum,但是如果对于性能有要求,则选择const enumconst enum都是内联的成员。

const enum Directions {
    Up,
    Down,
    Left,
    Right
}
let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right]

Ambient enums

用于描述已经存在的enum types的形状

declare enum Enum {
    A = 1,
    B,
    C = 2
}

最重要的不同就是,在non-ambient,中,regular enum中没有初始化的成员为constant member,而在non-const ambient没有初始化的成员为computed member

上一篇 下一篇

猜你喜欢

热点阅读