美文网首页
typescript学习-枚举

typescript学习-枚举

作者: 2分_08b6 | 来源:发表于2019-02-22 15:29 被阅读0次

    一. 枚举

    枚举在JavaScript中是运行时存在的对象,成员和成员值存在互相映射的关系

    enum Direction {
        Up = 1,
        Down,
        Left,
        Right
    }
    

    以下几种情况中,枚举成员会被当做常数:
    (1) 本身没有初始化函数,且前一个成员是常数,第一个默认是0
    (2) 常数枚举表达式(1. 数字字面量, 2. 引用之前定义的常数枚举成员, 3. 带括号的常数枚举表达式, 4. 常数枚举表达式应用了一元运算符,二元运算符), 会在编译阶段被计算出值

    二. const枚举

    常量枚举会在编译阶段被删除,就是枚举的定义会被删除

    const enum Directions {
        Up,
        Down,
        Left,
        Right
    }
    let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right]
    

    编译的结果是:

    var directions = [1 /* Up */, 2 /* Down */, 3 /* Left */, 4 /* Right */];
    

    三. 外部枚举

    外部枚举不大理解,目前的理解是上下文环境中已经存在了外部枚举声明的枚举,为了预防重复声明的作用
    如下:

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

    当我尝试再次声明一个不用declare的Enum枚举时,发现报错了

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

    相关文章

      网友评论

          本文标题:typescript学习-枚举

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