枚举 ts_TS学习笔记(六):枚举

超、凢脫俗 2023-01-06 13:00 250阅读 0赞

3af08d484bebaffa94d57c01375486c5.png

枚举是组织收集有关联变量的一种方式,使用枚举我们可以定义一些带名字的常量,像 C# 和 Java 都有枚举数据类型,TypeScript 将枚举类型引进到了 JavaScript 中。

数字枚举

枚举类型的值是数字类型,因此它们被称为数字类型枚举,成员的值可以不用初始化,因为具有自增行为。

  1. // 默认自增
  2. enum Person {
  3. name,
  4. age,
  5. love,
  6. hobby
  7. }
  8. console.log(Person.name); // 0
  9. console.log(Person.hobby); // 3
  10. // 可人为自行修改
  11. enum Person {
  12. name = 4,
  13. age = 3,
  14. love = 2,
  15. hobby = 1
  16. }
  17. console.log(Person.name); // 4
  18. console.log(Person.hobby); // 1

数字枚举的反向映射

数字枚举成员还具有 反向映射 的特性,从枚举值到枚举名字,要注意的是 不会为字符串枚举成员生成反向映射。

  1. enum Person {
  2. name,
  3. age,
  4. love,
  5. hobby
  6. }
  7. console.log(Person[Person.love]); // love

字符串枚举

在一个字符串枚举里,每个成员都必须用字符串字面量,或另外一个字符串枚举成员进行初始化。

  1. enum Person {
  2. name = 'NAME',
  3. age = 'AGE',
  4. love = 'LOVE',
  5. hobby = 'HOBBY'
  6. }
  7. console.log(Person.name); // NAME
  8. console.log(Person.hobby); // HOBBY

异构枚举

枚举可以混合字符串和数字成员,但一般没必要这么做。

  1. enum Person {
  2. name = 1,
  3. age = 2,
  4. love = 'LOVE',
  5. hobby = 'HOBBY'
  6. }
  7. console.log(Person.name); // 1
  8. console.log(Person.hobby); // HOBBY

常量枚举

常量枚举通过在枚举上使用 const 修饰符来定义,常量枚举不同于常规的枚举,他们会在编译阶段被删除。

  1. const enum Size {
  2. WIDTH = 10,
  3. HEIGHT = 20
  4. }
  5. const area = Size.WIDTH * Size.HEIGHT; // 200

常量枚举成员在使用的地方会被内联进来,之所以可以这么做是因为,常量枚举不允许包含计算成员;如上例所示,在运行时是没有 Size 变量的,因此常量枚举会带来一个对性能的提升。

other

  • 理解外部枚举

发表评论

表情:
评论列表 (有 0 条评论,250人围观)

还没有评论,来说两句吧...

相关阅读

    相关

    在学C++和做一些实践的时候发现,枚举类型有时候是必要的。 有时我们希望某些常量只在类中有效。由于\define定义的宏常量是全局的,不能达到目的,于是想当然地觉得应该用co

    相关

    当定义一个枚举时,编译器就会创建一个扩展java.lang.Enum类的类定义。这个类是java.lang.Object的一个直接后代。但与普通类不同的是,枚举具有以下属性:

    相关

    JDK1.5之前需要自定义枚举类 JDK 1.5 新增的 enum 关键字用于定义枚举类 若枚举只有一个成员, 则可以作为一种单例模式的实现方式 枚举类对象的属性

    相关

    枚举 什么是枚举? 枚举指的是在一定范围内取值,这个值必须是枚举类型中的任意一个,而且只能够取其中的一个 枚举的特点: 1.枚举的本质就是一个Java类

    相关 学习笔记

    [2019独角兽企业重金招聘Python工程师标准>>> ][2019_Python_] ![hot3.png][] 枚举Enum > 关键字enum可以将一组具名的值

    相关

                                       枚举(穷举,暴力求解) 一.基本思想         对问题变量可能解集合的每一个元素,根据问题给出