• typescript枚举


    一,前言

    1.enum是在typescript中新增的合法类型,是对JavaScript标准数据类型的一个补充。

    2.enum的主要作用是可以为一组限定范围内数值赋予友好的名字。

    二,enum介绍

    1.enmu的基本形式如下

    enum Animals {
    	Dog,
    	Cat,
    	Pig,
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.根据值和定义形式主要可以分为三种类型:数字枚举字符串枚举常量枚举

    三,数字枚举

    1.枚举值为数字的为数字枚举

    enum Animals {
    	Dog=1,
    	Cat=2,
    	Pig=3,
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.默认情况下,若不手动为枚举成员赋值,则会被定义成数字枚举,且从编号0开始递增为枚举成员赋值

    enum Animals {
    	Dog,
    	Cat,
    	Pig,
    }
    
    console.log(Animals.Dog)  //0
    console.log(Animals.Cat)  //1
    console.log(Animals.Pig)  //2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3.我们可以为其中的一个或多个手动赋值,之后的顺位按赋值的数值递增

    enum Animals {
    	Dog,
    	Cow=5,
    	Cat=2,
    	Pig,
    }
    
    console.log(Animals.Dog)  //0
    console.log(Animals.Cow)  //5
    console.log(Animals.Cat)  //2
    console.log(Animals.Pig)  //3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4.枚举项有两种类型:常数项计算所得项,前面所说的都是常数项,需要注意的是,当其中一项为计算所得项时,那么它的下位一定要赋予初始值,否则会报错,由于使用计算所得项,自动计算下位失效了。

    enum Animals {
    	Dog,
    	Cow=Math.random(), //Cow为常数项
    	Cat=2, //下一位需要赋予初始值,否则会报错
    	Pig,
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    二,字符串枚举

    1.枚举值为字符串的为字符串枚举

    enum Animals {
    	Dog="dog",
    	Cat="cat",
    	Pig="pig",
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.字符串枚举值要求每个字段的值都必须是字符串字面量,不能使用计算所得项

    三,常数枚举

    1.使用const enmu创建的枚举为常数枚举

    const enum Animals {
    	Dog="dog",
    	Cat="cat",
    	Pig="pig",
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.常数枚举和普通枚举的区别就是常数枚举本身会在编译的时候被删除,只会在使用到的地方,拿到相应的值进行替换。

    四,反向映射

    1.当我们定义了枚举可以使用enmu.key或者enmu[key]来获取值

    const enum Animals {
    	Dog="dog",
    	Cat="cat",
    	Pig="pig",
    }
    
    console.log(Animals["Dog"]) //dog
    console.log(Animals.Cat) //cat
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.不仅如此我们可以根据值来获取枚举项的key

    const enum Animals {
    	Dog,
    	Cat,
    	Pig,
    }
    console.log(Animals[0]) //Dog
    console.log(Animals[2]) //Pig
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    五,枚举类型

    1.枚举本身和枚举成员可以作为一种类型来声明变量

    enum Animals {
    	Dog,
    	Cat,
    	Pig,
    }
    
    let test:Animals = Animals.Dog //枚举本身作为类型,只能赋值枚举里的枚举项
    let test:Animals = 12 //声明了是Animals类型,赋值其他值会报错
    
    
    let test:Animals.Dog = Animals.Dog //枚举成员作为类型,只能赋值相应的枚举值
    let test:Animals.Dog = Animals.Cat //报错
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    索引的数据结构(2)
    MYSQL(事务)
    如何在 vue3 中使用 jsx/tsx?
    2. ESP8266通过I2C控制OLED显示
    数据结构:队列
    学会 Python 自动安装第三方库,从此跟pip说拜拜
    JS文件中的敏感信息+swagger接口测试
    金融壹账通香港上市:市值63亿港元 叶望春称守正笃实,久久为功
    Spring boot 实战指南(一):入门、配置、Web、文件上传、异常页面
    人均瑞数系列,瑞数 6 代 JS 逆向分析
  • 原文地址:https://blog.csdn.net/qq_40340943/article/details/125485741