12、枚举类型

文章详细介绍了枚举在TypeScript中的各种用法,包括数字枚举、增长枚举、自定义枚举、字符串枚举、异构枚举、接口枚举以及const枚举的使用,并展示了反向映射的概念,强调了枚举在代码中的重要性及其灵活性。
摘要由CSDN通过智能技术生成

1、数字定义枚举

enum Color {
  red, // 默认从0开始
  green,
  yellow
}
console.log(Color.red) // 0
console.log(Color.green) // 1
console.log(Color.yellow) // 2

2、增长枚举

enum Color1 {
  red = 2, // 默认从0开始
  green,
  yellow
}
console.log(Color1.red) // 2
console.log(Color1.green) // 3
console.log(Color1.yellow) // 4

3、自定义枚举

enum Color2 {
  red = 2, // 默认从0开始
  green = 6,
  yellow = 10
}
console.log(Color2.red) // 2
console.log(Color2.green) // 6
console.log(Color2.yellow) // 10

4、字符串枚举(符串枚举,要给初始值,不然报错)

enum str {
  name = 'huangzi',
  sex = '女',
  color = 'yellow'
}
console.log(str.name) // huangzi
console.log(str.sex) // 女
console.log(str.color) // yellow

5、异构枚举

enum str1 {
  name = 'huangzi',
  sex = '女',
  // age, 如果前一个是字符串枚举,下一个要给初始值,不然报错
  age = 20,
  age1,
  color = 'yellow'
}
console.log(str1.name) // huangzi
console.log(str1.sex) // 女
console.log(str1.age) // 20
console.log(str1.age1) // 21
console.log(str1.color) // yellow

6、接口枚举

enum str1 {
  name = 'huangzi',
  sex = '女',
  age = 20,
}
interface A {
  age: str1.age
}
let obj: A = {
  age: str1.age // str1.age或者20都可以。不可以取别的值,结果只能为枚举str1中age的值20
}

7、const枚举

// 使用const不会编译为对象(直接把值编译出来),不使用const会编译为对象
const enum Types { // 用let、var报错,可以使用const
  no,
  yes,
}
if (Types.no === 0) {
  console.log('tsc 进行编译文件看看');
}

加了const:

没加const:

8、反向映射

// 可以用key读取value,也可以通过value读取key
enum Types {
  age
}
let value: number = Types.age
let key = Types[value]
console.log(`key:${key},`, `value:${value}`); // key:age, value:0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值