首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用属性来减少enum到枚举映射和enum/const到动作切换语句

在云计算领域,使用属性来减少枚举到枚举映射和枚举/常量到动作切换语句是一种常见的编程技巧。这种技巧可以帮助开发人员更好地管理和维护代码,提高代码的可读性和可维护性。

在这种技巧中,开发人员可以使用属性来表示枚举值和常量值,并将这些属性应用于枚举或常量类中。这样,当需要将枚举值或常量值映射到其他枚举值或动作时,开发人员可以使用属性来定义映射关系,而不需要在代码中手动编写映射逻辑。

此外,使用属性还可以减少代码的重复性,提高代码的复用性。例如,开发人员可以使用属性来定义枚举值的显示名称或描述信息,这样在需要显示枚举值时,就可以直接使用属性来获取显示名称或描述信息,而不需要在代码中手动编写显示逻辑。

总之,使用属性来减少枚举到枚举映射和枚举/常量到动作切换语句是一种有效的编程技巧,可以帮助开发人员更好地管理和维护代码,提高代码的可读性和可维护性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一文让你彻底掌握 TS 枚举

1.3 引用枚举成员名称 与 JavaScript 对象类似,我们可以使用方括号引用包含非法字符的枚举成员: enum HttpRequestField { 'Accept', 'Accept-Charset...后两个赋值语句将值映射到名称。这称为反向映射,我们将在后面介绍。...5.1 反向映射 给定一个数字枚举enum NoYes { No, Yes, } 普通的映射是从成员名称成员值: // 静态查找 assert.equal(NoYes.Yes, 1);...// 动态查找 assert.equal(NoYes['Yes'], 1); 数字枚举还支持从成员值成员名称的反向映射: assert.equal(NoYes[1], 'Yes'); 5.2 运行时基于字符串的枚举...这种方法的缺点: 这种方法不适用于 if 语句。 7.3 keyof 枚举 我们可以使用 keyof 类型运算符创建类型,其元素是枚举成员的 key。

4.3K20

5000 多字,让你一文掌握 TS 枚举

1.3 引用枚举成员名称 与 JavaScript 对象类似,我们可以使用方括号引用包含非法字符的枚举成员: enum HttpRequestField { 'Accept', 'Accept-Charset...后两个赋值语句将值映射到名称。这称为反向映射,我们将在后面介绍。...5.1 反向映射 给定一个数字枚举enum NoYes { No, Yes, } 普通的映射是从成员名称成员值: // 静态查找 assert.equal(NoYes.Yes, 1);...// 动态查找 assert.equal(NoYes['Yes'], 1); 数字枚举还支持从成员值成员名称的反向映射: assert.equal(NoYes[1], 'Yes'); 5.2 运行时基于字符串的枚举...这种方法的缺点:这种方法不适用于if语句。 7.3 keyof 枚举 我们可以使用keyof类型运算符创建类型,其元素是枚举成员的 key。

3.8K10

TypeScript魔法堂:枚举的超实用手册

也许被迫写前端的后端同学会问,TypeScript的枚举类型是Java/.NET的一样吗? 下面我们一起探讨尝试解答吧!...enum让数字枚举类型反向映射成为可能 上一节介绍数字枚举类型支持反向映射,但前提是通过enum定义的数字枚举类型才支持。...当其它地方调用该枚举类型时,将直接把枚举类型成员的值内联使用处,如下: const enum Response { No, Yes, } console.log(Response.NO...什么时候用enum?又在什么场景下用const enum呢? 先说说结论: 使用enum的场景: 1.1. 需要使用反向映射时; 1.2....需要编译后的JavaScript代码保留对象.属性或对象[属性]形式时。 使用const enum的场景:能不用enum时就用const enum(哈哈!)

1.2K20

【TS 演化史 -- 13】字符串枚举 弱类型(Weak Type)探测

enum DefaultPorts { HTTP = 80, HTTPS = 443 } 在这种情况下,编译器还会生成从值键的反向映射 var DefaultPorts; (function...为了避免生成的枚举映射代码的开销,咱们可以通过将const修饰符添加到声明中,将MediaTypes枚举转换为const枚举const enum MediaTypes { JSON = "application...const修饰符后,编译器将不会为MediaTypes枚举生成任何映射代码。...相反,它将内联所有使用站点上每个枚举成员的值,从而可能节省一些字节属性访问间接性的开销: fetch("https://example.com/api/endpoint", { headers...,该怎么办呢 使用preserveConstEnums生成一个常量枚举 有时,可能有必要发出一个const枚举映射代码,例如,当某些 JS 代码需要访问它时,在这种情况下,可以在tsconfig.json

1.6K10

15个Typescript 5.0 中重要的新功能快速了解一下

所有枚举都是联合枚举 在 TypeScript 5.0 中,所有枚举现在都被视为联合枚举。 联合枚举使用枚举值提供了更好的类型安全性改进的人体工程学。...{extension}.ts 形式的声明文件导入具有未知扩展名的文件。...--sourceMap:为发出的 JavaScript 文件创建源映射文件。 --inlineSourceMap:在发出的 JavaScript 中包含源映射文件。 12....在处理联合类型时,编辑器现在可以建议所有可能的情况,减少遗漏情况的机会,并使编写全面的 switch 语句变得更加容易。...值得注意的是,某些属性已从数字转换为数字文字类型,并且用于剪切、复制粘贴事件处理的属性方法已跨接口移动。 API 重大更改:移至模块,删除了一些不必要的接口并进行了一些正确性改进。

22630

深度讲解TS:这样学TS,迟早进大厂【16】:枚举

简单的例子§ 枚举使用 enum 关键字定义: enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; 枚举成员会被赋值为从 0 开始递增的数字,同时也会对枚举枚举名进行反向映射...手动赋值的枚举项可以不是数字,此时需要使用类型断言让 tsc 无视类型检查 (编译出的 js 仍然是可用的): enum Days {Sun = 7, Mon, Tue, Wed, Thu, Fri,...当一个表达式满足下面条件之一时,它就是一个常数枚举表达式: 数字字面量 引用之前定义的常数枚举成员(可以是在不同的枚举类型中定义的)如果这个成员是在同一个枚举类型中定义的,可以使用非限定名引用...常数枚举§ 常数枚举使用 const enum 定义的枚举类型: const enum Directions { Up, Down, Left, Right } let...同时使用 declare const 也是可以的: declare const enum Directions { Up, Down, Left, Right }

34920

JavaScript中的四种枚举方式

让我们考虑一件T恤衫的尺寸:Small,Medium,Large。 在JavaScript中创建枚举的一个简单方法(虽然不是最理想的)是使用一个普通的JavaScript对象。...枚举的可读性更强,更明确,并消除了对魔法字符串或数字的使用。 优缺点 普通的对象枚举之所以吸引人,是因为它很简单:只要定义一个带有键值的对象,枚举就可以了。...但是你可以自由地使用你需要的任何值类型。 如果你可以自由选择枚举值类型,就用字符串吧。字符串比数字symbol更容易进行调试。...TypeError 语句const size2 = Sizes.Medium = 'foo' 对 Sizes.Medium 属性进行了意外的赋值。...基于类的枚举的一个很好的优点是能够在运行时使用instanceof操作确定值是否是枚举。例如,mySize instanceof Sizes结果为真,因为mySize是一个枚举值。

29640

Rust FFI 编程 - Rust导出共享库03

这次,我们关注一下Rust语言的基本特性C的映射。 我们已经了解了,Rust语言是多泛式(混合泛式)的语言,它可以做命令式(过程式)编程,也可以做面向对象编程,也可以做函数式编程。...本文我们关注: 结构体的方法的处理 泛型的处理 Type alias Enum C 的映射 结构体的方法的处理 我们知道,Rust中,可以对结构体(或 enum 等)添加方法。...枚举 C 的映射 Rust 中,枚举分三大类:空枚举(Empty Enum),无字段枚举(Fieldless Enum带负载枚举(Data-carrying enum) 。...Rust要导出共享库给C使用的场景,涉及枚举(基本)都是 Fieldless Enum。...所以我们这里只限于说明 Fieldless Enum C 枚举布局上的一些细节。

77920

设计模式学习笔记(二十)状态模式及其实现

一般用来实现状态机,而状态机常用在游戏、工作流引擎等系统的开发中: 有限状态机(Finite State Machine,FSM),状态机有三个组成部分:状态(State)、事件(Event)动作(...1.1 状态模式的结构 在状态模式的结构中,通过实现抽象状态类的具体状态类定义多个状态,每个状态类仅实现自己的逻辑,上下文类负责切换状态。...以下情况可以考虑使用状态模式: 对象的行为依赖于它的某些属性值(状态),而且状态的改变将导致行为的变化 代码中包含大量与对象状态有关的条件语句(if-else),这些条件语句的出现会导致代码的可维护性灵活性变差...如下图中可以看到流程节点中包括各个状态下一个状态扭转的关联条件: 因此在审批过程中就难免会包含很多条件语句的判断,长此以往,随着状态数量的增加,会增加代码的可维护性可读性。...:具体状态类,各种状态的具体逻辑实现 StateHandler:状态处理类,相当于之前结构中提到的上下文类,负责对状态流程进行统一处理 具体代码 基本活动信息活动枚举状态 public class ActivityInfo

21120

OVS中Action源码分析&自定义Action

首先,我们需要在这里定义新的action枚举类型其结构体。 action的枚举类型。...2 定义完新action的枚举类型,则需要定义新action对应的结构体,说明action所包含的字段属性。...ofp_action即可,会根据type(即对应openflow action的enum值)确定是哪一个action。...这种一对多映射,因此就需要ofputil_action_code具体记录指定是曾经是哪种openflow action,则可以看出ofputil_action_code就是对应基本(原始)的openflow...这里为止,通过以上OVS代码的添加修改,OVS则可以正确解析控制器下发的新的action(比如含有新action的flow-mod消息),OVS已经可以正确对action进行解析,并且可以正确插入流表中

2.2K91

TS 笔记

原始数据类型 string number boolean null undefined enum symbol 空值一般用void表示,void可以表示变量,也可以表示函数返回值。...枚举Enum)类型用于取值被限定在一定范围内的场景 enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat } // 枚举成员会被赋值为从0开始递增的数字,同时也会被枚举枚举名进行反向映射...当一个成员变量没有修饰符时,外部是可以访问的,默认为 public 父类将属性定义为私有后,子类不可以访问 父类将属性定义为受保护后,子类可以访问 子类继承父类,子类可以访问父类公开的属性方法,但是不能直接获取到父类的私有属性或者受保护的属性...super.say() } static test() { console.log('test') console.log(this) // ERROR 类的静态方法里不允许使用...new Child() c.callParent() console.log(c.say()) console.log(c.age) 泛型 泛型是指在定义函数、接口或者类的时候,不预先指定具体类型,而在使用的时候再指定类型的一种特性

41220
领券