TypeScript的枚举与类型约束

● 上一章我们讲了 TS 的接口

● 这一章, 我们就来聊一聊 TS 的枚举和约束

枚举

认识枚举

● 在很多计算机语言中都有枚举的概念, 但是 JS 中是没有枚举这个概念的, 为了弥补这个缺憾 在 TS 加入了枚举类型

● 什么是枚举呢 ?

枚举( mei ju ) : 枚举的意思就是一一列举, 把所有情况都列举出来, 那么取值的时候, 只有这几个可以使用, 其他的都不行

计算机语言里面的枚举( enumerations ) : 把所有的常量放在一个集合内, 让若干个常量变成一组有关联的内容

// 针对一个业务逻辑, 我需要频繁用到四个方向的字符串
const UP = 'up'
const RIGHT = 'right'
const DOWN = 'down'
const LEFT = 'left'

● 对于以上四个变量来说

● 我不管做任何逻辑, 我没办法限制你只能使用这四个变量中的一个

// 封装一个功能函数
function util(dir) {}

● 不管用什么方法, 你都没办法限制这个 dir 参数接收到的必须是上面列出的四个方向

● 这个时候, 我们就可以用到枚举了

● 首先, 在 TS 中, 利用 enum 关键字创建一个枚举集合, 把我们需要的四个常量放进去

enum Direction {
  UP = 'up',
  RIGHT = 'right',
  DOWN = 'down',
  LEFT = 'left'
}

● 制作了一个 DIrection 枚举集合, 那么就可以用这个集合来对某些数据进行限制了

function util(dir: Direction) {}

● 这就约定了, dir 这个参数的值只能是 Direction 这个枚举集合里面的常量, 其他都不行

● 只要你写的不是 Direction 这个枚举内的内容都不行

数字枚举

● 数字枚举 : 枚举类型中的每一个常量都是数字

● 在 TS 中, 枚举内的每一个常量, 当你不设置值的时候, 默认就是 number 类型

enum Pages {
    ONE,    // 0
    TWO,    // 1
    THREE   // 2
}

● 你在枚举内的常量, 第一个默认值是 0, 后面的依次 +1 递增

此时

Pages.ONE => 0

Pages.TWO => 1

Pages.THREE => 2

● 我们也可以自己指定值

enum Pages {
    ONE = 10,    // 10
    TWO = 20,    // 20
    THREE = 30   // 30
}

● 这个时候枚举集合内的常量就是我们指定好的值

● 我们也可以指定部分值

enum Pages {
    ONE = 10,    // 10
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值