• ts类型-枚举


    枚举是组织收集有关联变量的一种方式,通过组织特殊类型的变量,使得代码更易读。

    数字类型

    enum Weekday {
      Monday,
      Tuesday,
      Wednesday,
      Thursday,
      Friday,
      Saturday,
      Sunday
    }
    
    Weekday.Monday // 0
    Weekday.Tuesday // 1
    

    数字类型的枚举默认从数值0开始,依次递增。当然也可以通过赋值的方式改变这个值

    enum Weekday {
        Monday=1,
        Tuesday,
        Wednesday,
        Thursday = 2,
        Friday,
        Saturday,
        Sunday
    }
    
    Weekday.Monday // 1
    Weekday.Tuesday // 2
    Weekday.Wednesday // 3
    Weekday.Thursday // 2
    
    

    说明:枚举值是只读的

    字符串类型

    enum Codes {
        SUCCESS = '10000',
        NO_PRO = '10002',
        ERROR = '20000',
        LOW_VERSION = '20001'
    }
    
    // code 是服务端返回的
    if(code === Codes.LOW_VERSION) {
        // 处理版本过低的逻辑
    }
    

    常量枚举

    可以使用const关键字定义常量枚举

    const enum Codes {
        SUCCESS = '10000',
        NO_PRO = '10002',
        ERROR = '20000',
        LOW_VERSION = '20001'
    }
    
    const success = Codes.SUCCESS // '10000'
    

    使用常量定义枚举的好处是编译后的代码更加简洁,性能也更好一些

    有静态方法的枚举

    枚举类型不仅可以定义数值和字符串,使用enum + namespace 的声明的方式可以向枚举类型添加静态方法

    enum Weekday {
        Monday,
        Tuesday,
        Wednesday,
        Thursday,
        Friday,
        Saturday,
        Sunday
      }
      
      namespace Weekday {
          // 验证是否是工作日
        export function isBusinessDay(day: Weekday) {
          switch (day) {
            case Weekday.Saturday:
            case Weekday.Sunday:
              return false;
            default:
              return true;
          }
        }
      }
      
      // 使用
      Weekday.isBusinessDay(Weekday.Monday); // true
      Weekday.isBusinessDay(Weekday.Sunday); // false
    
    常用网站: SegmentFault | GitHub | 掘金社区
  • 相关阅读:
    Docker容器进入的4种方式
    Linux启动/停止/重启Mysql数据库的方法
    MySQL replace函数替换字符串语句的用法(mysql字符串替换)
    php从数组中随机筛选出指定个数的值
    Beyond Compare 4 30天试用期后,破解方法
    MYSQL:1213 Deadlock问题排查历程
    uniapp 屏幕高度
    如何系统学习Spring框架
    mysql 批量修改表前缀
    DHCP中继配置案例
  • 原文地址:https://www.cnblogs.com/yesyes/p/15412530.html
Copyright © 2020-2023  润新知