美文网首页
2.typeScript的枚举类型

2.typeScript的枚举类型

作者: 我性本傲 | 来源:发表于2019-09-27 18:00 被阅读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
    

    相关文章

      网友评论

          本文标题:2.typeScript的枚举类型

          本文链接:https://www.haomeiwen.com/subject/rweauctx.html