ZetCode

TypeScript 枚举

最后修改于 2025 年 2 月 24 日

TypeScript 枚举是定义一组命名常量的语法。它们有助于提高代码的可读性和可维护性。本文通过实际示例涵盖了 TypeScript 枚举的创建、操作和常见用法。

TypeScript 枚举是定义一组命名常量的语法。它们使用 enum 关键字进行定义。

定义枚举

此示例演示了如何在 TypeScript 中定义枚举。

defining_enums.ts
enum Colors {
    Red,
    Green,
    Blue
}

console.log(Colors.Red);  // Output: 0
console.log(Colors.Green); // Output: 1
console.log(Colors.Blue);  // Output: 2

枚举可以使用 enum 关键字加上一组命名常量来定义。第一个常量被赋值为 0,后续每个常量的值会递增 1。

枚举成员

枚举成员可以显式赋值。

enum_members.ts
enum Colors {
    Red = 1,
    Green,
    Blue
}

console.log(Colors.Red);  // Output: 1
console.log(Colors.Green); // Output: 2
console.log(Colors.Blue);  // Output: 3

在此示例中,Red 成员被显式赋值为 1。GreenBlue 成员的赋值是从前一个成员递增而来。

枚举类型

枚举成员可以用作类型。

enum_types.ts
enum Colors {
    Red,
    Green,
    Blue
}

let color: Colors = Colors.Red;
console.log(color);  // Output: 0

枚举成员可用作变量的类型。在此示例中,color 变量被赋值为 Colors.Red

枚举常量

枚举常量可以通过其名称访问。

enum_constants.ts
enum Colors {
    Red,
    Green,
    Blue
}

console.log(Colors[0]);  // Output: "Red"
console.log(Colors[1]); // Output: "Green"
console.log(Colors[2]); // Output: "Blue"

枚举常量可以通过其索引访问。

计算枚举成员

枚举成员可以被计算。

computed_enum_members.ts
enum Colors {
    Red = 1,
    Green = 2,
    Blue = 4
}

console.log(Colors.Red | Colors.Green);  // Output: 3

在此示例中,Blue 成员被显式赋值为 4。RedGreen 成员的赋值是从前一个成员递增而来。使用按位或运算符组合枚举成员。

使用枚举的最佳实践

来源

TypeScript 枚举文档

在本文中,我们探索了 TypeScript 枚举,并通过实际示例演示了其用法。

作者

我是 Jan Bodnar,一位充满热情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。我在教学编程方面拥有十多年的经验。

列出所有 TypeScript 教程