0
点赞
收藏
分享

微信扫一扫

#yyds干货盘点#typeScript枚举

枚举

枚举是 typeScript 中一种特殊的数据类型,允许我们为一组数值设定友好的名字。枚举的定义使用 enum 关键字。

enum Direction {
    Up = 1,
    Down,
    Left,
    Right,
}

在这个例子中,我们定义了一个名为 Direction 的枚举,它有四个成员:UpDownLeft 和 RightUp 的初始值为 1,其余成员的值会自动递增。

除了使用数值,我们也可以使用字符串:

enum Direction {
    Up = "UP",
    Down = "DOWN",
    Left = "LEFT",
    Right = "RIGHT",
}

此外,TypeScript 还支持计算的和常量成员。常量枚举通过 const enum 进行定义,TypeScript 会在编译阶段进行优化:

const enum Enum {
    A = 1,
    B = A * 2
}

异构枚举

TypeScript 支持数字和字符串混用的枚举,这种类型的枚举被称为异构枚举:

enum BooleanLikeHeterogeneousEnum {
    No = 0,
    Yes = "YES",
}

尽管 TypeScript 支持这种用法,但我们在实际项目中应尽可能避免使用异构枚举,因为这会引入不必要的复杂性。

枚举成员的类型

在某些特殊的情况下,枚举成员本身也可以作为一种类型:

enum ShapeKind {
    Circle,
    Square,
}

interface Circle {
    kind: ShapeKind.Circle;
    radius: number;
}

interface Square {
    kind: ShapeKind.Square;
    sideLength: number;
}

举报

相关推荐

0 条评论