当前位置:   article > 正文

TypeScript学习笔记7-枚举

TypeScript学习笔记7-枚举

在 TypeScript 中,枚举(Enum)是一种数据类型,用于定义一组具名的常量值。

枚举可以帮助开发人员在代码中使用可读性更强的符号来表示固定的数值或状态。

枚举的定义类似于对象字面量,其中包含一组键值对,键表示枚举成员的名称,值表示枚举成员的值。

数字枚举

  1. enum Color {
  2. Red, // 0
  3. Blue, // 1
  4. Green, // 2
  5. }
  6. let c1:Color = Color.Blue
  7. let c2:Color = 5 // 编译会失败
  8. let c3:Color = "234" // 直接失败

如果是纯数字,下面的会进行自动增长

自动从0开始

  1. enum Color {
  2. Red=100,
  3. Blue, // 101
  4. Green, // 102
  5. Yellow, // 103
  6. }

如果中断了,那么下面的就从中断的地方继续增长

  1. enum Color {
  2. Red=100,
  3. Blue, // 101
  4. Green=103, // 103
  5. Yellow, // 104
  6. }

字符串枚举

它不能自动增长

  1. enum Color {
  2. Red="red",
  3. Blue, // 报错
  4. }

如果是字符串,那么定义的时候就要全部写上

  1. enum Color {
  2. Red="red",
  3. Blue="blue",
  4. }

接口枚举

  1. enum Color {
  2. Red,
  3. Blue,
  4. Yellow
  5. }
  6. interface ColorInter {
  7. color: Color,
  8. blue: Color.Blue
  9. }
  10. let c1: ColorInter = {
  11. color: Color.Red, // 这个color只能是Color里面的值
  12. blue: Color.Blue, // blue就只能写 Color.Blue
  13. }

const枚举

主要作用就是节省因为枚举带来的性能消耗

  1. enum Color {
  2. Red = 2,
  3. Blue,
  4. Yellow
  5. }
  6. interface ColorInter {
  7. color: Color,
  8. blue: Color.Blue
  9. }
  10. let c1: ColorInter = {
  11. color: Color.Red, // 这个color只能是Color里面的值
  12. blue: Color.Blue, // blue就只能写 Color.Blue
  13. }

编译之后

  1. var Color;
  2. (function (Color) {
  3. Color[Color["Red"] = 2] = "Red";
  4. Color[Color["Blue"] = 3] = "Blue";
  5. Color[Color["Yellow"] = 4] = "Yellow";
  6. })(Color || (Color = {}));
  7. var c1 = {
  8. color: Color.Red,
  9. blue: Color.Blue, // blue就只能写 Color.Blue
  10. };
  1. const enum Color {
  2. Red = 2,
  3. Blue,
  4. Yellow
  5. }
  6. interface ColorInter {
  7. color: Color,
  8. blue: Color.Blue
  9. }
  10. let c1: ColorInter = {
  11. color: Color.Red, // 这个color只能是Color里面的值
  12. blue: Color.Blue, // blue就只能写 Color.Blue
  13. }

编译之后

  1. var c1 = {
  2. color: 2 /* Color.Red */,
  3. blue: 3 /* Color.Blue */, // blue就只能写 Color.Blue
  4. };

注释:笔记是一边看b站枫枫视频一边做的笔记 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/480709
推荐阅读
相关标签
  

闽ICP备14008679号