学习typescript - enum

数字枚举 默认顺序

enum Direction{
    up, //0
    down, //1
    left, //2
    right //3
}

数字枚举 指定顺序

enum Direction{
    up = 1, //1 
    down, //2 后面会根据第一个指定的加1递推
    left, //3
    right //4
}

数字枚举 获取对应数字

enum Direction{
    up , //0
    down, //1
    left, //2
    right //3
}

console.log(Direction.down); //1

枚举 首个成员未初始化

function getUp(){
    return 0
}
enum Direction{
    up=getUp(), 
    down  //error 第一个未初始化,第二个必须指定参数
}

字符串枚举

enum Direction{
    up = 'up',  //得到的会是字符串
    down = 'down'
}

字符串数字混合枚举

enum Direction{ 
    //技术上可以实现,但是实际不推荐使用
    up = 0,
    down = "down"
}

计算枚举

function getLeft(){
    return 2
}
enum Direction{
    //可以通过计算获得
    up = 0,
    down = up +1,
    left = getLeft()
}

枚举在运行时是一个对象

enum Direction{
    up,
    down,
    left,
    right
}
//枚举在运行的时候是实实在在的一个对象
console.log(Direction); //{0: "up", 1: "down", 2: "left", 3: "right", up: 0, down: 1, left: 2, right: 3}

反向映射

enum Direction{
    up,
    down,
    left,
    right
}

console.log(Direction.up);//0
console.log(Direction[0]);//up

常量枚举

const enum Direction{
    up,
    down,
    left,
    right
}

console.log(Direction.up); //0
console.log(Direction); //Direction is not defined
//编译后销毁,和普通枚举会实际存在的变量不一样

外部枚举

declare enum Direction{
    up=0,
    down=1,
    left, //没有初始化方法时被当做需要经过计算的
    right=3
}

自行回顾

  • 数字枚举 默认顺序
  • 数字枚举 指定顺序
  • 数字枚举 获取对应数字
  • 枚举 首个成员未初始化
  • 字符串枚举
  • 字符串数字混合枚举
  • 计算枚举
  • 枚举在运行时是一个对象
  • 反向映射
  • 常量枚举
  • 外部枚举

你可能感兴趣的:(学习typescript - enum)