ts中的枚举

文章类型:TypeScript

发布者:hp

发布时间:2023-05-31

一:定义

1:是一种数据类型,用于定义一组数据的常量,说白了就是一组有名字的常量集合

二:类型

1:数字枚举  :从0开始,如果改变默认值,则后面从默认值开始+(反向映射)

enum Types{
  man,
  woman
}
console.log(Types) //{0: 'man', 1: 'woman', man: 0, woman: 1}

enum Types{
  man=2,
  woman
}
console.log(Types)  //{2: 'man', 3: 'woman', man: 2, woman: 3}

2:字符串枚举

enum Types{
  success='成功',
  err='失败'
}
console.log(Types)

3:异构枚举(字符串和数字 )

enum Types{
  man,
  err='失败'
}
console.log(Types)

三:性质

1:枚举类型的值是可读的,不允许修改

enum Types{
  man,
  err='失败'
}
Types.man=1 //TS2540: Cannot assign to 'man' because it is a read-only property.
console.log(Types)

2:常量枚举(const),会在编译得时候计算结果,以常量的结果出现在运行环境,

A:没有初始值

B:对已有枚举成员的引用

C:一些常量的表达式

3:计算型枚举(computed) 需要被计算的枚举成员,一些非常量的表达式,不会在编译阶段进行计算,而会被保留到执行阶段

enum FileAccess {
  // 常量成员
  None,
  Read = 1 << 1,
  Write = 1 << 2,
  ReadWrite = Read | Write,
  // 计算成员  
  G = "123".length,
}

4:外部枚举(环境枚举) 用来描述已经存在的枚举类型的形状(不会产生反向映射)

declare enum Enum {
  A = 1,  
  B,  
  C = 2,
}

三:总结

1:在代码中使用有意义的名称来代替数字或者字符串,提高代码的可读性和可维护性