【TypeScript枚举简介以及使用方法】

TypeScript 枚举(Enum)是一种特殊的数据类型,它允许我们为一组命名的常量分配整数值。默认情况下,第一个枚举成员的值为 0,后续成员的值会依次递增。但是,你也可以显式地为枚举成员赋值。

枚举简介

  • 枚举是一种类型安全的方式,用于表示一组固定数量的常量值。
  • 枚举类型中的每个成员都有一个与之相关联的值,这个值可以是整数或字符串。
  • 枚举可以帮助提高代码的可读性和可维护性。

使用方法

  1. 定义枚举
enum Color {Red,Green,Blue
}// 或者带有显式值的枚举
enum ColorWithValues {Red = 1,Green = 2,Blue = 4
}// 字符串枚举
enum ColorNames {Red = "Red",Green = "Green",Blue = "Blue"
}
  1. 访问枚举成员

你可以通过枚举类型名和成员名来访问枚举成员的值。

let c: Color = Color.Green;
console.log(c); // 输出:1let cwv: ColorWithValues = ColorWithValues.Blue;
console.log(cwv); // 输出:4let cn: ColorNames = ColorNames.Red;
console.log(cn); // 输出:"Red"
  1. 枚举成员的双向映射

TypeScript 枚举提供了从枚举值到枚举名称的反向映射。这意味着你可以通过枚举值找到其对应的枚举名称。

console.log(Color[1]); // 输出:"Green",注意这里使用的是枚举类型名作为对象,并传入枚举值作为键// 注意:对于字符串枚举,反向映射并不适用,因为字符串枚举的值是唯一的。
  1. 枚举的常量性和不可变性

枚举成员是常量,你不能对它们进行赋值。但是,你可以将枚举成员的值赋给其他变量,并对这些变量进行修改。
5. 计算得到的枚举成员

你还可以使用表达式或函数来计算枚举成员的值。但是,请注意,计算得到的枚举成员必须在枚举的末尾定义,因为它们依赖于前面的枚举成员的值。

enum FileAccess {// 常量成员None,Read    = 1 << 1,Write   = 1 << 2,ReadWrite  = Read | Write,// 计算得到的成员G = "123".length,H = () => 456, // 注意:这里虽然语法上没有错误,但通常我们不会在枚举中使用函数
}// 注意:H 成员的值将是其函数体,而不是函数调用的结果。
  1. 枚举类型在 TypeScript 中的用途
  • 用于表示一组固定的常量值,如颜色、状态等。
  • 在函数或类的方法中作为参数类型,以提高代码的类型安全性。
  • 在 TypeScript 接口或类型中作为属性类型,以确保属性的值是一组预定义的常量之一。

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

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

相关文章

算法学习006-瓷砖总数 广度优先算法BFS 中小学算法思维学习 信奥算法解析 c++实现

目录 C瓷砖总数 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C瓷砖总数 一、题目要求 1、编程实现 在一个长方形房间&#xff0c;铺着不同颜色的的瓷砖&#xff0c;有红色和黑色&#…

AR人脸道具SDK解决方案,实现道具与人脸的自然融合

AR人脸道具SDK解决方案&#xff0c;实现道具与人脸的自然融合美摄科技以其卓越的技术实力和创新能力&#xff0c;为企业带来了全新的AR人脸道具SDK解决方案。这一解决方案将为企业打开全新的市场机会&#xff0c;为用户带来前所未有的互动体验。 颠覆传统&#xff0c;开启AR人…

AI预测福彩3D第10套算法实战化赚米验证第1弹2024年5月5日第1次测试

从今天开始&#xff0c;准备启用第10套算法&#xff0c;来验证下本算法的可行性。因为本算法通过近三十期的内测&#xff08;内测版没有公开预测结果&#xff09;&#xff0c;发现本算法的预测结果优于其他所有算法的效果。彩票预测只有实战才能检验是否有效&#xff0c;只有真…

产业项目招商活动会议课程报名签到h5小程序pc开源版开发

产业项目招商活动会议课程报名签到h5小程序pc开源版开发 一个集PC和移动端功能于一体的解决方案&#xff0c;线上线下进行服务&#xff0c;围绕 活动报名、在线课程、项目大厅、线下签到、会员系统等。为商会提供了更加便捷高效的管理方式&#xff0c;提升了商会活动和项目的组…

qt day 3

优化登录框&#xff0c;点击登录按钮&#xff0c;如果账号和密码匹配&#xff0c;则弹出 信息对话框 给出提示信息“登录成功”&#xff0c;并给出一个 ok 按钮&#xff0c;当用户点击 ok 后&#xff0c;关闭当前界面&#xff0c;跳转到另一个界面&#xff1b;如果账号和密码不…

labview技术交流-将时间字符串转换成时间格式

应用场景 我们在数据库中设计了datetime类型的字段&#xff0c;比如字段名就叫“保存时间”&#xff0c;当我们使用labview将表中数据读取出来后datetime类型的数据是以字符串的格式显示的。而我们想计算两条数据“保存时间”的间隔时间时&#xff0c;用字符串类型自然是没法计…

OpenMV 图像串口传输示例

注意&#xff1a;本程序根据 OpenMV采集图片通过串口发送&#xff0c;PC接收并保存为图片 更改。 一、例程说明 这个例程主要实现了以下功能: 1. OpenMV 端采集图像:使用OpenMV开发板上的摄像头采集实时图像数据。 2. 通过串口传输图像数据:将采集到的图像数据打包成字节流,…

使用nvm管理多版本node.js

使用nvm&#xff08;Node Version Manager&#xff09;安装Node.js是一个非常方便的方法&#xff0c;因为它允许你在同一台机器上管理多个Node.js版本。以下是使用nvm安装Node.js的基本步骤&#xff1a; Linux 安装nvm 根据你的操作系统&#xff0c;安装命令可能会有所不同。以…

Java 笔记 11:Java 方法相关内容,方法的设计原则,以及方法的定义和调用

一、前言 记录时间 [2024-05-01] 系列文章简摘&#xff1a; Java 笔记 01&#xff1a;Java 概述&#xff0c;MarkDown 常用语法整理 Java 笔记 02&#xff1a;Java 开发环境的搭建&#xff0c;IDEA / Notepad / JDK 安装及环境配置&#xff0c;编写第一个 Java 程序 Java 笔记 …

idea 项目 修改项目文件名 教程

文章目录 目录 文章目录 修改流程 小结 概要流程技术细节小结 概要 原项目名 修改流程 关掉当前项目的idea页面 修改之后的文件名 重新打开idea。选择项目打开项目页面 技术细节 出现下面这个问题&#xff0c;可以参考作者新的一编文章idea开发工具 项目使用Spring框架开发解…

力扣:1979. 找出数组的最大公约数(Java)

目录 题目描述&#xff1a;输入&#xff1a;输出&#xff1a;代码实现&#xff1a; 题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;返回数组中最大数和最小数的 最大公约数 。 两个数的 最大公约数 是能够被两个数整除的最大正整数。 输入&#xff1a; nums [2,5,6…

【Linux】25. 网络基础(一)

网络基础(一) 计算机网络背景 网络发展 独立模式: 计算机之间相互独立; 网络互联: 多台计算机连接在一起, 完成数据共享; 其实本质上一台计算机内部也是一个小型网络结构(如果我们将计算机内部某个硬件不存放在电脑中&#xff0c;而是拉根长长的线进行连接。这其实也就是网…

在做题中学习(51): x的平方根

69. x 的平方根 - 力扣&#xff08;LeetCode&#xff09;​​​​​​ 解法&#xff1a;二分查找 思路&#xff1a;看示例2&#xff1a; 可以看到8的平方根是2.82&#xff0c;在2^2和3^2之间&#xff0c;所以可以把数组分为两部分&#xff0c;(具有二段性) 而2.82去掉小数部分…

【Kolmogorov-Arnold网络 替代多层感知机MLPs】KAN: Kolmogorov-Arnold Networks

KAN: Kolmogorov-Arnold Networks 论文地址 代码地址 知乎上的讨论&#xff08;看一下评论区更正&#xff09; Abstract Inspired by the Kolmogorov-Arnold representation theorem, we propose Kolmogorov-Arnold Networks (KANs) as promising alternatives to Multi-Layer…

【OceanBase 系列】—— OceanBase v4.3 特性解读:查询性能提升之利器列存储引擎

原文链接&#xff1a;OceanBase 社区 对于分析类查询&#xff0c;列存可以极大地提升查询性能&#xff0c;也是 OceanBase 做好 HTAP 和 OLAP 的一项不可缺少的特性。本文介绍 OceanBase 列存的实现特色。 OceanBase从诞生起就一直坚持LSM-Tree架构&#xff0c;不断打磨功能支…

2020 年国考【计算机专业】真题及答案

真题及答案 第一部分数学基础课程 一、&#xff08;共 5 分&#xff09;用逻辑符号表达下列语句&#xff08;论域为包含一切事物的合集&#xff09; &#xff08;2 分&#xff09;确诊者并不都有症状&#xff08;注&#xff1a;需给出两种形式表达, 一种用存在量词, 一种用全称…

JavaScript 循环方法详解

在编程中&#xff0c;循环是一种重复执行代码块的机制&#xff0c;直到满足某个条件为止。JavaScript 提供了多种循环结构来帮助我们实现这一功能。以下是 JavaScript 中常用的几种循环方法的详细解释。 1. for 循环 for 循环是 JavaScript 中最常用的循环结构之一。它使用一…

python魔法方法是什么

魔法方法是python内置方法&#xff0c;不需要主动调用&#xff0c;存在的目的是为了给python的解释器进行调用&#xff0c;几乎每个魔法方法都有一个对应的内置函数&#xff0c;或者运算符&#xff0c;当我们对这个对象使用这些函数或者运算符时就会调用类中的对应魔法方法&…

leetcode746.使用最小花费爬楼梯(动态规划)

问题描述&#xff1a; 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低…

ASP.NET Core SignalR 配置与集成测试究极指南

这篇文章也可以在我的博客中查看 前言 哥们最近都在埋头苦干&#xff0c;沉默是金&#xff0c;有一段时间没更新博客了。然而今儿SignalR集成测试实属是给我整破防了。虽说SignalR是.NET官方维护的实时通信库&#xff0c;已经开发了有十几年&#xff0c;甚至已经编入至了core…