TS学习笔记5-枚举

72 阅读1分钟

1、基本使用

enum color {
  red,
  blue,
  green
}
console.log(color.red, color[0])  // 0 'red'
console.log(color.blue, color[1]) // 1 'blue'
console.log(color.green, color[2]) // 2 'green'

这是一个数字枚举,他的值是从0开始递增的,所以打印出的是0,1,2。

他可以反向映射,所以color[0]是red。

如果给一个默认值,就会从默认值开始递增

enum color {
  red,
  blue = 9,
  green
}
console.log(color.red, color[0])  // 0 'red'
console.log(color.blue, color[9]) // 9 'blue'
console.log(color.green, color[10]) // 10 'green'

也可以全部都手动赋值

enum color {
  red = -1,
  blue = 9,
  green = 999
}
console.log(color.red, color[-1])  // -1 'red'
console.log(color.blue, color[9]) // 9 'blue'
console.log(color.green, color[999]) // 999 'green'

也可以定义字符串枚举,提高代码可读性

enum color {
  red = 'red',
  blue = 'blue',
  green = 'green'
}
console.log(color.red, color[red])  //  'red' 'red'
console.log(color.blue, color[blue]) // 'blue' 'blue'
console.log(color.green, color[green]) // 'green' 'green'

2、常量枚举

使用const定义常量枚举,可以提高性能

const enum color {
  red = 'red',
  blue = 'blue',
  green = 'green'
}
console.log(color.red, color[red])  //  'red' 'red'
console.log(color.blue, color[blue]) // 'blue' 'blue'
console.log(color.green, color[green]) // 'green' 'green'