面试题-TS(七):如何定义枚举(enums)并使用它们?

面试题-TS(7):如何定义枚举(enums)并使用它们?

在TypeScript中,枚举(Enums)是一种用于定义命名常量集合的数据类型。枚举允许我们为一组相关的常量赋予有意义的名字,并在代码中以更直观的方式使用它们。通过使用枚举,我们可以简化代码,提高可读性,并减少错误。

一、定义枚举

在TypeScript中,我们可以使用enum关键字来定义枚举。以下是一个简单的枚举示例,表示一周的每一天:

enum WeekDay {
    
    
  Sunday,
  Monday,
  Tuesday,
  Wednesday,
  Thursday,
  Friday,
  Saturday
}

在上面的示例中,我们定义了一个名为WeekDay的枚举,它包含了七个常量成员:SundayMondayTuesdayWednesdayThursdayFridaySaturday。默认情况下,枚举的成员会按照从0开始的索引进行编号,也可以手动指定成员的值。

enum WeekDay {
    
    
  Sunday = 1,
  Monday,
  Tuesday,
  Wednesday,
  Thursday,
  Friday,
  Saturday
}

在上面的示例中,我们手动指定了Sunday的值为1,后续成员会依次递增。

二、使用枚举

在使用枚举时,我们可以通过成员的名称来访问枚举的常量。以下是一些使用枚举的示例:

let today: WeekDay = WeekDay.Wednesday;
console.log(today); // 输出:3

let dayName: string = WeekDay[1];
console.log(dayName); // 输出:Sunday

在上面的示例中,我们将WeekDay.Wednesday赋值给变量today,并输出它的值。我们还可以通过WeekDay[1]来获取枚举成员的名称,输出结果为Sunday

三、枚举成员的值

在枚举中,每个成员都有一个关联的数值,默认情况下从0开始递增。我们也可以手动指定成员的值。

在没有手动指定成员值的情况下,枚举成员的值将从0开始递增:

enum Numbers {
    
    
  One,
  Two,
  Three
}

console.log(Numbers.One);   // 输出:0
console.log(Numbers.Two);   // 输出:1
console.log(Numbers.Three); // 输出:2

当我们手动指定部分成员的值时,后续成员的值将依次递增:

enum Numbers {
    
    
  One = 1,
  Two,
  Three
}

console.log(Numbers.One);   // 输出:1
console.log(Numbers.Two);   // 输出:2
console.log(Numbers.Three); // 输出:3

我们还可以手动指定所有成员的值:

enum Numbers {
    
    
  One = 1,
  Two = 3,
  Three = 5
}

console.log(Numbers.One);   // 输出:1
console.log(Numbers.Two);   // 输出:3
console.log(Numbers.Three); // 输出:5

四、字符串枚举

除了数字枚举,TypeScript还支持字符串枚举。在字符串枚举中,每个成员都必须手动指定一个字符串值。

扫描二维码关注公众号,回复: 15866123 查看本文章

以下是一个简单的字符串枚举示例,表示不同类型的颜色:

enum Color {
    
    
  Red = "RED",
  Green = "GREEN",
  Blue = "BLUE"
}

在上面的示例中,我们定义了一个名为Color的字符串枚举,它包含了三个成员:RedGreenBlue,并为每个成员手动指定了一个字符串值。

五、常量枚举

在TypeScript中,我们还可以定义常量枚举。常量枚举是一种在编译阶段被删除的枚举。在使用常量枚举时,其值会被内联到代码中,从而减少了额外的运行时开销。

要定义常量枚举,需要在枚举前面添加const关键字:

const enum WeekDay {
    
    
  Sunday,
  Monday,
  Tuesday,
  Wednesday,
  Thursday,
  Friday,
  Saturday
}

let today = WeekDay.Wednesday;
console.log(today); // 输出:3

在上面的示例中,我们定义了一个常量枚举WeekDay,并将其值赋给变量today。在编译时,WeekDay枚举的值将被内联到代码中。

六、枚举的用途

枚举在代码中有许多用途。以下是一些常见的用例:

  1. 替代魔法数值:枚举可以将常量与有意义的名称关联起来,避免了在代码中使用魔法数值。

  2. 表示选项:枚举可以用于表示选项和配置,例如开关状态、方向等。

  3. 限定值范围:枚举可以用于限定值的范围,例如星期几、月份等。

  4. 替代字符串常量:字符串枚举可以用于替代字符串常量,提高代码的可维护性。

总结

在TypeScript中,枚举是一种用于定义命名常量集合的数据类型。通过使用枚举,我们可以简化代码,提高可读性,并减少错误。枚举允许我们为一组相关的常量赋予有意义的名字,并在代码中以更直观的方式使用它们。数字枚举和字符串枚举分别用于表示数字常量和字符串常量,常量枚举用于在编译阶段删除枚举。

猜你喜欢

转载自blog.csdn.net/weixin_42560424/article/details/131921618
今日推荐