TypeScript 中将字符串转换为枚举

Muhammad Maisam Abbas 2023年1月30日
  1. Typescript 中的枚举数据类型
  2. TypeScript 中的数字枚举
  3. TypeScript 中基于字符串的枚举
  4. TypeScript 中的多个枚举
TypeScript 中将字符串转换为枚举

枚举类型是为变量预定义常量的数据类型。该变量必须在枚举中为其定义一个值。

本教程将讨论 Typescript 中枚举的概念。

Typescript 中的枚举数据类型

Typescript 允许用户使用枚举类型作为变量的数据类型。枚举的一个常见示例是月份的名称,用户必须选择一年中定义的月份。

Typescript 提供基于字符串和数字的枚举。

TypeScript 中的数字枚举

枚举是使用关键字 enum 定义的,顾名思义,数字枚举用于数值。

示例代码:

enum basicEnum {
  a = 3,
  b = 6,
  c = 7,
}
console.log(basicEnum);

输出:

{
  "3": "a",
  "6": "b",
  "7": "c",
  "a": 3,
  "b": 6,
  "c": 7
}

这是一个简单的枚举类型实例。让我们再举一个例子。

例子:

enum basicEnum {
  a = 3,
  b,
  c,
}
console.log(basicEnum);

输出:

{
  "3": "a",
  "4": "b",
  "5": "c",
  "a": 3,
  "b": 4,
  "c": 5
}

在上面的示例中,第一个变量 a 被声明,其余的从该初始化值递增 1。

如果用户未定义每个变量。然后这些值将从 0 开始,其余的将递增 1。

用户还可以获得枚举上的单个变量。

示例代码:

enum basicEnum {
  a = 3,
  b = 6,
  c = 7,
}
console.log('The first enum variable a has a value = ' + basicEnum.a);
console.log('The second enum variable b has a value = ' + basicEnum.b);
console.log('The last enum variable c has a value = ' + basicEnum.c);

输出:

The first enum variable a has a value = 3
The second enum variable b has a value = 6
The last enum variable c has a value = 7

上面的示例显示了对枚举的每个变量的访问。

TypeScript 中基于字符串的枚举

基于字符串的枚举与基于数字的枚举操作相同,但每个变量都必须在基于字符串的枚举中初始化。如果变量需要为空,则必须将其声明为空字符串。

示例代码:

enum stringEnum {
  a = "Hello",
  b = "Bye",
  c = "",
}
console.log(stringEnum);

输出:

{
  "a": "Hello",
  "b": "Bye",
  "c": ""
}

上面的例子展示了基于字符串的枚举的使用。请注意如何为成员 c 定义一个空字符串。

如果用户未定义变量,则会引发错误。

示例代码:

enum stringEnum {
  a = "Hello",
  b = "Bye",
  c,
}
console.log(stringEnum)

输出:

{
  "a": "Hello",
  "b": "Bye",
  "c": undefined,
  "undefined": "c"
}

注意输出 c 是未定义的。对于变量 c 枚举成员不返回未定义,它必须有一个初始化程序。

TypeScript 中的多个枚举

用户可以在 typescript 中定义多个枚举。这是保持数字和基于字符串的枚举分开的好习惯。

示例代码:

enum firstEnum {
  a = "Hello",
  b = "Bye",
  c = "",
}

enum secondEnum {
  x = 2,
  y = 4,
  z = 8,
}
console.log(firstEnum);
console.log(secondEnum);

输出:

{
  "a": "Hello",
  "b": "Bye",
  "c": ""
}
{
  "2": "x",
  "4": "y",
  "8": "z",
  "x": 2,
  "y": 4,
  "z": 8
}

让我们再举一个例子来讨论枚举数据类型的错误使用。

示例代码:

enum badEnum {
  a = "Hello",
  b = 4,
}
console.log(badEnum);

输出:

{
  "4": "b",
  "a": "Hello",
  "b": 4
}

在这里,它表明无论何时定义枚举,各个成员都必须具有相同的数据类型。尽管 typescript 不会引发错误,但以这种方式处理 enum 是一种不好的做法。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn