枚举

数字类型枚举

/**
 * 枚举
*/
// 数字(number类型)枚举
enum Direction {
  Up,
  Down,
  Left,
  Right
}

// 每一个枚举的内部变量都会进行递增,且是一个双向赋值的过程!
console.log(Direction.Up) // 0
console.log(Direction[0]) // 'Up'
console.log(Direction.Down) // 1
console.log(Direction[1]) // 'Down'
console.log(Direction.Left) // 2
console.log(Direction[2]) // 'Left'
console.log(Direction.Right) // 3
console.log(Direction[3]) // 'Right'

enum Direction2 {
  Up = 10,
  Down, // 11
  Left, // 12
  Right // 13
}

枚举它是一个双向赋值的过程,转换为JS代码后如下:

var Direction;
(function (Direction) {
    Direction[Direction["Up"] = 0] = "Up";
    Direction[Direction["Down"] = 1] = "Down";
    Direction[Direction["Left"] = 2] = "Left";
    Direction[Direction["Right"] = 3] = "Right";
})(Direction || (Direction = {}));
console.log(Direction.Up); // 0
console.log(Direction[0]); // 'Up'
console.log(Direction.Down); // 1
console.log(Direction[1]); // 'Down'
console.log(Direction.Left); // 2
console.log(Direction[2]); // 'Left'
console.log(Direction.Right); // 3
console.log(Direction[3]); // 'Right'

字符串类型枚举

// 字符串类型枚举 与 常量枚举
const enum Direction3 {
  Up = 'UP',
  Down = 'DOWN',
  Left = 'LEFT',
  Right = 'RIGHT'
}
const value = 'UP'
if (value === Direction3.Up) {
  console.log('go up!')
}
posted @ 2022-05-19 16:49  见信  阅读(35)  评论(0)    收藏  举报