美文网首页@IT·互联网
TypeScript -- 枚举类型

TypeScript -- 枚举类型

作者: _路明非_ | 来源:发表于2019-11-30 23:52 被阅读0次

        1,一个角色判断的例子

        2,枚举
      https://www.tslang.cn/play/index.html

        3,例子
    // 数字枚举
    enum Role {
      Reporter,
      Developer,
      Maintainer,
      Owner,
      Guest
    }
    // console.log(Role.Reporter) // 0

    // 字符串枚举
    enum Message {
      Success = '成功',
      Fail = '失败'
    }

    // 异构枚举(容易混淆,不建议使用)
    enum Answer {
      N,
      Y = 'Yes'
    }

    // 枚举成员
    enum Char {
      // 枚举成员的类型一共分为两类 
      // 1,常量枚举--const(会在编译的时候计算出结果,然后以常量的形式出现在运行时环境)
      // 2,需要被计算的枚举成员--computed(会被保留在程序的执行阶段)
      // 常量枚举包括三种情况 
      a, // const 没有初始值的情况
      b = Char.a,// const 对已有成员的引用
      c = 1 + 3, // const 常量的表达式
      d = Math.random(),
      e = '123'.length,
      f = 4 // 在computed后面的常量枚举,必须有初始值
    }

    // 常量枚举(用const声明的就是常量枚举)
    // 会在编译阶段被移除
    // 作用:当我们不需要一个对象,而需要一个对象的值的时候,减少在编译环境的代码const enum Month {
      Jan,
      Feb,
      Mar
    }
    let month = [Month.Jan, Month.Feb, Month.Mar]

    //枚举类型
    enum E { a, b}
    enum F { a = 0, b = 1 }
    enum G { a = 'a', b = 'b' }
    let e: E = 3
    let f: F = 3
    // e === f // 两种不同枚举类型是不可以比较的
    let e1: E.a = 1
    let e2: E.b
    // e1 === e2 // 是永远不可以进行比较的
    let e3: E.a =2
    // e1 === e3 // 相同的枚举类型是可以比较的
    //字符串枚举的取值只能是枚举成员的类型
    let g1: G = G.b
    let g2: G.a = G.a

    相关文章

      网友评论

        本文标题:TypeScript -- 枚举类型

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