枚举在 TypeScript 中是如何工作的?
在本文中,我们将尝试了解与 TypeScript 中的枚举相关的所有事实。
TypeScript 枚举: TypeScript 枚举允许我们定义或声明一组命名常量,即相关值的集合,这些值可以是字符串或数字或任何其他数据类型的形式。
语法:以下是我们可以用来在 TypeScript 中初始化枚举的语法:
enum enum_name {
// values......
}
在 TypeScript 中使用枚举的原因:
- Enums 提供了一种在 TypeScript 中组织代码的好方法。
- Enums 使用 JavaScript 中的内联代码节省了编译时间和运行时间。
- 枚举允许在 JavaScript 中创建内存高效的自定义常量。
枚举在 TypeScript 中是如何工作的?
- 枚举通常接受数字的默认值(从 0 开始)。
- 尽管用户可以根据要求更改枚举中提供的值。
- 枚举中的值被标记为常量,因此也可以访问它们,但不能更改或更改它们。
- TypeScript 枚举的输出是我们在 JavaScript 中看到的一个对象(尽管 JavaScript 不支持枚举)。
- 该对象由枚举中声明的命名属性组成。
- 该对象还具有数字键,其字符串值表示命名常量。
- 这就是为什么我们可以将一个数字传递给一个接受枚举的函数。
- 换句话说,我们也可以将枚举成员可视化为一个数字和一个定义的常量。
数字枚举:数字枚举将字符串值存储为数字,并且可以使用关键字 enum 声明它们。以下是一些示例,它们将帮助我们以更好和更清晰的方式理解数字枚举 -
示例:在此示例中,我们将创建一个数字枚举来存储汽车信息,然后我们将使用该枚举显示一些特定的结果。
Javascript
enum CarName {
Honda,
Toyota,
Alto,
Swift,
}
console.log(CarName);
console.log("Value of Alto is : "+ CarName.Alto);
Javascript
enum CarName {
Honda = 10,
Toyota,
Alto,
Swift,
}
console.log(CarName);
console.log("Value of Alto is : "+ CarName.Alto);
Javascript
enum fruitsName {
Apple = "APPLE",
Banana = "Banana",
Mango = "Mango",
Papaya = "Papaya"
}
console.log(fruitsName);
console.log("Fruit name is : " + fruitsName.Apple);
Javascript
enum studentDetails {
name = "ABCD",
age = 20,
rollno = 12345,
address = "XYZ Place PQR city",
school_name = "ABCDEFG"
}
console.log(studentDetails);
输出:
{
'0': 'Honda',
'1': 'Toyota',
'2': 'Alto',
'3': 'Swift',
Honda: 0,
Toyota: 1,
Alto: 2,
Swift: 3
}
Value of Alto is : 2
示例:在此示例中,我们将在枚举中初始化一个值,因此其他值将自行递增。
Javascript
enum CarName {
Honda = 10,
Toyota,
Alto,
Swift,
}
console.log(CarName);
console.log("Value of Alto is : "+ CarName.Alto);
输出:
{
'10': 'Honda',
'11': 'Toyota',
'12': 'Alto',
'13': 'Swift',
Honda: 10,
Toyota: 11,
Alto: 12,
Swift: 13
}
Value of Alto is : 12
字符串枚举:字符串枚举与数字枚举非常相似,但它们的枚举值是用字符串值而不是数字值初始化的。字符串枚举比数字枚举具有更好的可读性。
以下示例将帮助我们以更好、更清晰的方式理解字符串枚举——
示例:在此示例中,我们将创建一个字符串枚举,它将存储字符串数据类型中的所有值。
Javascript
enum fruitsName {
Apple = "APPLE",
Banana = "Banana",
Mango = "Mango",
Papaya = "Papaya"
}
console.log(fruitsName);
console.log("Fruit name is : " + fruitsName.Apple);
输出:
{ Apple: 'APPLE', Banana: 'Banana', Mango: 'Mango', Papaya: 'Papaya' }
Fruit name is : APPLE
异构枚举:异构枚举包含数字和字符串枚举值。以下示例将以更好和清晰的方式解释异构枚举 -
示例:在此示例中,我们将存储一些数据,这些数据既可以是数字形式,也可以是字符串形式。
Javascript
enum studentDetails {
name = "ABCD",
age = 20,
rollno = 12345,
address = "XYZ Place PQR city",
school_name = "ABCDEFG"
}
console.log(studentDetails);
输出:
{
'20': 'age',
'12345': 'rollno',
name: 'ABCD',
age: 20,
rollno: 12345,
address: 'XYZ Place PQR city',
school_name: 'ABCDEFG'
}
使用枚举的地方:只要有一小部分可用且密切相关的固定值,并且这些值在编译时已知,就应该使用枚举。