2.typeScript的枚举类型

2019-09-27  本文已影响0人  我性本傲

枚举类型:一组有名字的常量集合

//数字枚举
enum role {
  a,
  b,
  c,
  d
}
//字符串枚举
enum msg {
  success = '好得很',
  error = '不咋滴' 
}
//异构枚举(混合使用,容易造成混淆,不建议使用)
enum enua {
  f,
  str = '好的呀奥迪',
}
//枚举成员,枚举成员的值是不能更改的,是一个只读类型
//枚举成员的类型分为两类
//1.const 常量枚举成员会在编译的时候计算出结果,以常量的形式出现在运行时环境
//2.comuted 需要被计算的枚举成员,非常量的表达式,不会在编译阶段进行计算,而会被保留到程序//的执行阶段

enum char {
  //const
  a,               //没有初始值的情况
  b = char.a, //对已有枚举成员的引用
  c = 1+3,     //常量的表达式
  //comuted
  //comuted后面的枚举成员一定要被赋一个初始值,否则会报错的呢
  d = Math.random(),
  e = '123'.length,
  f(报错)
}
//常量枚举(用const声明的枚举)
//表现:会在编译阶段被移除
//作用:当我们不要一个对象,只需要一个对象的值的时候,就可以使用常量枚举。
//好处:减少我们在编译环境的代码
const enum month{
  a,
  b,
  c
}
let Month = [month.a, month.b, month.c] //编译时,枚举被替换了常量
console.log(Month)

//枚举类型
enum E { a, b}                   //声明未赋值的类型
enum F { a = 0, b = 1}       //声明为都是数字类型
enum G { a = 'aaaa', b = 'bbbbbb' }   //声明为都是字符串类型

let e: E = 3
let f: F = 3

let e1: E.a = 3
let e2: E.b = 3
let e3: E.a = 3
//不同枚举类型的值是永远不可以进行比较的

let g1: G = G.b
let g2: G.a = G.a
上一篇 下一篇

猜你喜欢

热点阅读