如何在 typescript 中合并 2 个枚举
要合并 2 个枚举:
- 使用扩展语法将枚举合并到一个对象中。
- 获取对象的类型。
- 使用括号表示法访问类型上两个枚举的成员。
// ✅ for string enums
enum sizes1 {
small = 's',
medium = 'm',
}
enum sizes2 {
large = 'l',
extralarge = 'xl',
}
export const sizes = { ...sizes1, ...sizes2 };
// 👇️ {small: 's', medium: 'm', large: 'l', extralarge: 'xl'}
console.log(sizes);
export type sizes = typeof sizes;
// ✅ 现在我们可以访问两个枚举的属性
type xl = sizes['extralarge'];
type s = sizes['small'];
typescript 中的枚举是真实的对象并且存在于运行时,因此我们可以使用扩展语法 (...)
将 2 个枚举合并为一个对象。
合并对象的所有规则都适用 - 如果两个枚举中都存在一个键,则后者的值包含在最终对象中。
我们使用 typeof
运算符来获取对象的类型,现在可以使用括号表示法来访问两个枚举的成员。
使用数字枚举时,我们应该为枚举提供一个初始值,这样我们就不会得到多个指向相同值的不同枚举键。
// ✅ for numeric enums
enum sizes1 {
small = 0,
medium,
}
enum sizes2 {
large = 2,
extralarge,
}
export const sizes = { ...sizes1, ...sizes2 };
// 👇️ {small: 's', medium: 'm', large: 'l', extralarge: 'xl'}
console.log(sizes);
export type sizes = typeof sizes;
type xl = sizes['extralarge'];
type s = sizes['small'];
第一个枚举的初始值为 0,第二个枚举的初始值为 2。这样我们就不会得到指向相同值的多个键的冲突。
请注意,如果我们使用 const
枚举,上面的示例将不起作用,因为 const
枚举只能使用常量枚举表达式,并且在编译期间被完全删除。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
发布时间:2024/01/16 浏览次数:119 分类:编程语言
-
本教程演示了如何在 c# 中用几种方法从枚举类型中获取 int 值,并附有详细的说明和示例。本教程讲解了如何在 c# 中从 enum 中获取 int 值,并列举了一些常见的代码示例,以收集 c# 的枚举类型
发布时间:2024/01/16 浏览次数:170 分类:编程语言
-
本教程介绍了如何在 c# 中使用不同类型的方法来枚举一个枚举值。本教程介绍了如何在 c# 中枚举一个枚举类型,并通过一些代码实例列表进行演示。
如何在 c 中把枚举型转换为字符串
发布时间:2024/01/02 浏览次数:287 分类:c
-
本文演示了如何在 c 中把枚举转换为字符串。本文将解释几种在 c 中把枚举类型转换为 string 变量的方法。使用 const char*数组将枚举类型转换为字符串
发布时间:2023/11/28 浏览次数:87 分类:java
-
本文介绍如何在 java 中使用 == 或 equals() 方法比较 java 枚举。本教程介绍如何使用 java 中的 == 运算符或 equals() 方法比较 java 枚举。
发布时间:2023/07/20 浏览次数:102 分类:java
-
在 java 中声明 downloadtype 的枚举将是本文讨论的主题。 让我们首先看看枚举的用途。java 中枚举的用途
发布时间:2023/07/16 浏览次数:992 分类:java
-
在 java 中,枚举(枚举的缩写)是一种具有固定常量值集的数据类型。 我们使用 enum 关键字来声明枚举数据类型。用大写字母表示枚举值是一种常见的做法。 在java中,所有枚举类默认都是fi
在 angularjs 中设置 select from typescript 的默认选项值
发布时间:2023/04/14 浏览次数:132 分类:angular
-
本教程提供了在 angularjs 中从 typescript 中设置 html 标记选择的默认选项的解释性ag捕鱼王app官网的解决方案。
在 angular 中使用 typescript 的 getelementbyid 替换
发布时间:2023/04/14 浏览次数:259 分类:angular
-
本教程指南提供了有关使用 typescript 在 angular 中替换 document.getelementbyid 的简要说明。这也提供了在 angular 中 getelementbyid 的最佳方法。
发布时间:2023/03/29 浏览次数:153 分类:php
-
本教程将教授如何在 php 中创建和使用枚举。你将学习如何使用抽象类模拟枚举。此外,你还将学习如何在 php 中使用本机枚举。