当前位置: 首页 > article >正文

TypeScript —枚举的应用

枚举的关键字:enum

语法:enum  枚举名{选项}

enum Sex{
    boy='男',
    girl='女'
}

如何使用枚举中的属性

enum Sex{
    boy='男',
    girl='女'
}

function a2(sex:Sex){
    console.log(`张三的性别是:${sex}`)
}
a2(Sex.boy)

运行结果:

枚举的作用

1.提高代码可读性:通过使用枚举,我们可以给一组相关的常量赋予有意义的名称,使得代码更加易读易懂 例如:颜色

enum Color{
    Red:'#ff0000',
    Blue:'#0000ff',
    Green:'#00ff00'
}

//使用颜色我们就可以利用枚举来直接使用
Color.Red //这里颜色是红色,方便看懂

2.约束取值范围:枚举类型可以限制变量的取值范围,只能从预定义的常量中选择。这样可以避免因为使用了不合法的取值而引发错误。例如,定义一个表示性别的枚举类型

enum Sex{
    boy='男',
    girl='女'
}

function a2(sex:Sex){
    console.log(`张三的性别是:${sex}`)
}
a2(Sex.boy)

如果没有使用枚举来约束取值,那就有可能发生错误的情况:

function a(sex:string){
    console.log(`张三的性别是:${sex}`)
}
a('男')
a('双性')

运行结果:

3.增加代码可维护性:通过使用枚举,我们可以集中管理一组相关的常量,便于后续的维护和修改。当需要增加或修改常量时,只需修改枚举定义即可,而不需要在代码中逐个搜索和修改

枚举的默认值以及命名规范

枚举的默认值是0,之后就递增+1

枚举类名首字母大写,选项首字母大写

enum Week{
    Sunday, //默认从0开始
    Monday, //默认递增1
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
}

枚举赋值的错误演示

enum Week{
    // 选项首字母大写
    Sunday, //默认从0开始
    Monday, //默认递增1
    Tuesday=0,
    Wednesday,
    Thursday,
    Friday,
    Saturday
}
这样周一跟周三的值都是1,周日跟周二的值是0,这种写法禁止
如果赋值应该每个选项都分别赋值

枚举的选项也可以用中文来描述,但也不建议

enum Week{
    // 周日,不需要添加字符串,相当于声明的变量名称是:周日
    周日,周一,周二,周三,周四,周五,周六
}


http://www.kler.cn/news/309393.html

相关文章:

  • “拍照赚钱”的任务定价(2017数学建模国赛b题)
  • 中国农业银行——数据湖建设
  • 5V全桥驱动芯片单通道可替代型号LG9110S,应用于牙刷,电子锁,共享单车锁等产品中具有过温保护功能
  • Python模块化程序设计理念及实战
  • 【快慢指针】突破环形链表
  • 企微无限群发:精准营销与合规边界的探索
  • 性能测试的五大目标
  • 基于yolov8的舌苔识别检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • Meme“淘金”热潮下:Meme发射平台的安全风险分析
  • Python文本数据切分及HTML数据处理
  • bootstrapping in the main distro: listing WSL distros: running WSL xxxx
  • DevOps工程师的职业发展路径
  • 荣耀时刻|Anzo Capital 闪耀2024国际金融产业博览会
  • 尚航科技受邀出席腾讯全球数字生态大会,并重磅发布云智算中心共建计划
  • flutter widget.onPressed回调无效
  • 学会这个AI副业,小白也能轻松副业变现100+!
  • python内置模块pathlib.Path类操作目录和文件
  • 游戏各个知识小点汇总
  • web安全测试入门
  • 如何用安卓玩Java版Minecraft,安卓手机安装我的世界Java版游戏的教程
  • LabVIEW提高开发效率技巧----VI服务器和动态调用
  • 【Webpack--000】了解Webpack
  • 如何查看微信聊天记录?四种实用方法查询微信聊天记录,赶快码住!
  • 分析内存动态加载PE文件
  • 第十一章 【后端】商品分类管理微服务(11.3)——商品管理模块 yumi-etms-goods
  • NLP与文本生成:使用GPT模型构建自动写作系统
  • 建筑机器人通用操作系统设计方案
  • Js中call、apply和bind的区别
  • C语言 | Leetcode C语言题解之第412题Fizz Buzz
  • 鸿蒙开发(NEXT/API 12)【网络连接管理】 网络篇