三(二)ts非基础类型(枚举)

news2024/12/23 14:10:08

数字枚举

使用enum定义一个枚举类型

enum Color {
	red,
	yellow,
	blue
}
let clr: Color = Color.red

如上面代码中,我们定义了一个关于颜色的枚举类型,里面的值会从0开始依次递增,也就是说Color.red为0,Color.yellow为1依次类推。当然我们也可以自定义初始值。

enum Color {
	red = 10,
	yellow,
	blue
}
let clr: Color = Color.red

这样我们的Color枚举会从10开始依次赋值。

数字枚举不但可以由属性映射到值,还可以由值映射到属性

// 反向映射
enum Color {
  red,
  yellow,
  blue
}
let cltAttr = Color[0] // 'red'

字符串枚举

当然,我们也可以定义字符串值得枚举,如果其中有属性定义为字符串,那么该值后面所有得枚举属性都需要你设置一个初始值。而该属性前面得属性则延用数字枚举得规则定义。

enum Color {
  red,
  blue = 'b',
  yellow = 'y',
}

常量枚举

const enum Color {
  red,
  blue = 'b',
  yellow = 'y',
}
let clr:Color = Color.red

常量枚举与普通枚举得区别:普通枚举在编译得时候会真的生成一个对象保存到js代码中,而常量枚举不会,它会直接赋值到对应得变量上;因为常量枚举没有生成真正得对象,所以常量枚举只能包含字面量或其他常量枚举成员,并且不能包含计算成员,也不支持反向映射。

在这里插入图片描述
在这里插入图片描述

注意

枚举里面的值是可以重复定义的,所以在赋值的时候需要细心

enum Direction{
  Up = 7,
  Down = 7
}

枚举赋值一般使用字面量直接赋值,如果使用函数或者非const定义的变量,即使返回的是数字后面的枚举也需要手动赋值

let index = 3
enum Direction{
    Up,
    Left = index,
    Right, // Enum member must have initializer.
}
```ts
let index = () => 3
enum Direction{
    Up,
    Left = index(),
    Right, // Enum member must have initializer.
}
const index = 3
enum Direction{
    Up,
    Left = index ,
    Right, // 不用手动赋值
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1301941.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

渲染技术在虚拟仿真中的应用

虚拟仿真(Virtual Reality)是一种仿真技术,它使用计算机生成一个虚拟世界,用户可以通过各种传感通道与这个虚拟世界进行自然的交互。虚拟仿真技术可以创建和体验虚拟世界,使用户可以像在真实世界中一样进行操作和体验。…

Python - 深夜数据结构与算法之 ArrayList

目录 一.引言 二.ArrayList 介绍 1.List 2.Linked List 3.Skip List 三.经典算法实战 1.Two-Sum [1] 2.Three-Sum [15] 3.Merge-Two-Sorted-List [21] 4.Remove-Duplicates-From-Sorted-Array [26] 5.Plus-One [66] 6.Rotate-Array [189] 7. Move-Zero [283] 四.…

如何公网访问内网的群晖NAS随时随地远程访问本地存储的学习资源

文章目录 前言本教程解决的问题是:按照本教程方法操作后,达到的效果是前排提醒: 1. 搭建群晖虚拟机1.1 下载黑群晖文件vmvare虚拟机安装包1.2 安装VMware虚拟机:1.3 解压黑群晖虚拟机文件1.4 虚拟机初始化1.5 没有搜索到黑群晖的解…

双向链表(数据结构与算法)

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿&#x1…

基于Java的商城网站系统设计与实现(6000字论文范例)

基于Java的商城网站系统设计与实现 姓 名: 刘德华 学 号: 指导教师: 2023年4月 摘要 随着我国经济活力的不断提升和互联网的快速发展,信息的重要性正在…

SpringIOC之ConditionEvaluator

博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌ 博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+…

如何使用cpolar+Inis在Ubuntu系统快速搭建本地博客网站公网可访问

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道(云端设置)2.3.Cpolar稳定隧道(本地设置) 3. 公网访问测试总…

安装Nacos2.2.3集群

目录 一、传统方式安装 二、Docker安装 一、传统方式安装 1、配置jdk环境 vi /etc/profile JAVA_HOME/usr/local/java JRE_HOME/usr/local/java/jre CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH$JAVA_HOME/bin:$PATH export PATH JAVA_…

统筹高级前端,系统进阶精选案例实战,高效奠定前端基石

在当今的软件开发中,前端技术的重要性日益突出。为了应对不断变化的市场需求和用户期望,前端开发人员需要不断进阶,并掌握高级技术和系统化的实战经验。本文将介绍一些高级前端开发的精选案例,帮助开发者高效地奠定前端基石&#…

WRF--修改geo_em.d01.nc中的变量,保持其他信息不变

WRF–修改geo_em.d01.nc中的变量,保持其他信息不变 首先呢,找到编译WRF过程中自带的读取nc的一个fortran函数:read_wrf_nc.f90 可以使用Linux命令: find / -name read_wrf_nc.f90 找到之后,修改这个文件&#xff0c…

ke14--10章-1数据库JDBC介绍

注册数据库(两种方式),获取连接,通过Connection对象获取Statement对象,使用Statement执行SQL语句。操作ResultSet结果集 ,回收数据库资源. 需要语句: 1Class.forName("DriverName");2Connection conn DriverManager.getConnection(String url, String user, String…

通过异步序列化提高图表性能 Diagramming for WPF

通过异步序列化提高图表性能 2023 年 12 月 6 日 MindFusion.Diagramming for WPF 4.0.0 添加了异步加载和保存文件的功能,从而提高了响应能力。 MindFusion.Diagramming for WPF 提供了一个全面的工具集,用于创建各种图表,包括组织结构图、图…

华为数通---配置本地端口镜像示例(1:1)

镜像概念 定义 镜像是指将指定源的报文复制一份到目的端口。指定源被称为镜像源,目的端口被称为观察端口,复制的报文被称为镜像报文。 镜像可以在不影响设备对原始报文正常处理的情况下,将其复制一份,并通过观察端口发送给监控…

IntelliJ IDEA无公网远程连接Windows本地Mysql数据库提高开发效率

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,…

每日一练【查找总价格为目标值的两个商品】

一、题目描述 题目链接 购物车内的商品价格按照升序记录于数组 price。请在购物车中找到两个商品的价格总和刚好是 target。若存在多种情况,返回任一结果即可。 示例 1: 输入:price [3, 9, 12, 15], target 18 输出:[3,15] …

Pytorch深度强化学习1-6:详解时序差分强化学习(SARSA、Q-Learning算法)

目录 0 专栏介绍1 时序差分强化学习2 策略评估原理3 策略改进原理3.1 SARSA算法3.2 Q-Learning算法 0 专栏介绍 本专栏重点介绍强化学习技术的数学原理,并且采用Pytorch框架对常见的强化学习算法、案例进行实现,帮助读者理解并快速上手开发。同时&#…

摄像机镜头,家庭监控云台等安防监控系统镜头选型分析,低噪声,低振动,多通道

安防镜头步进驱动选用型号 GC6107 C6109 GC6209 GC6119 GC6129 GC6139 GC6208 GC6150 GC6151 GC6152 GC6125 GC6236采用5V的镜头驱动 。其中GC6107 C6109 GC6209 GC6119 GC6129 GC6139 GC6208关键特性两通道,256细分,低噪,内部和外部时钟…

【算法系列篇】递归、搜索和回溯(二)

文章目录 前言1. 两两交换链表中的节点1.1 题目要求1.2 做题思路1.3 代码实现 2. Pow(X,N)2.1 题目要求2.2 做题思路2.3 代码实现 3. 计算布尔二叉树的值3.1 题目要求3.2 做题思路3.3 代码实现 4. 求根节点到叶结点数字之和4.1 题目要求4.2 做题思路4.3 代码实现 前言 前面为大…

解锁数据安全秘诀:医药企业选择上海迅软DSE,防范泄密威胁!

随着数字化和信息化程度的提高,医药企业存储了大量的患者医疗记录、药品研发数据、临床试验数据以及财务信息。但由于医药行业的特殊性和敏感性,其数据的变现价值非常高,在各种利益的非法驱动下,医药行业早已成为数据泄露的重灾区…

想知道修改图片dpi会影响清晰度吗?点击这里找答案

很多人都对图片dpi分辨率有不少疑问,比如dpi对图片清晰的影响,还有哪些地方需要修改图片dpi?其实dpi是指每英寸墨点的数量。对同一张图像来说,一般使用300dpi比使用72dpi打印出来的效果要清晰很多 ,一般只有在打印照片或者上传证件…