如何在 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
枚举只能使用常量枚举表达式,并且在编译期间被完全删除。
相关文章
如何在 C# 中从枚举 Enum 中获取整型 Int 值
发布时间:2024/01/16 浏览次数:119 分类:编程语言
-
本教程演示了如何在 C# 中用几种方法从枚举类型中获取 int 值,并附有详细的说明和示例。本教程讲解了如何在 C# 中从 enum 中获取 int 值,并列举了一些常见的代码示例,以收集 C# 的枚举类型
如何在 C# 中枚举一个枚举值
发布时间:2024/01/16 浏览次数:170 分类:编程语言
-
本教程介绍了如何在 C# 中使用不同类型的方法来枚举一个枚举值。本教程介绍了如何在 C# 中枚举一个枚举类型,并通过一些代码实例列表进行演示。
如何在 C++ 中把枚举型转换为字符串
发布时间:2024/01/02 浏览次数:287 分类:C++
-
本文演示了如何在 C++ 中把枚举转换为字符串。本文将解释几种在 C++ 中把枚举类型转换为 string 变量的方法。使用 const char*数组将枚举类型转换为字符串
在 Java 中使用 == 或 equals() 方法比较 Java 枚举
发布时间:2023/11/28 浏览次数:87 分类:Java
-
本文介绍如何在 Java 中使用 == 或 equals() 方法比较 Java 枚举。本教程介绍如何使用 Java 中的 == 运算符或 equals() 方法比较 Java 枚举。
在 Java 中声明枚举
发布时间:2023/07/20 浏览次数:102 分类:Java
-
在 Java 中声明 DownloadType 的枚举将是本文讨论的主题。 让我们首先看看枚举的用途。Java 中枚举的用途
Java 中枚举的继承
发布时间:2023/07/16 浏览次数:992 分类:Java
-
在 Java 中,枚举(枚举的缩写)是一种具有固定常量值集的数据类型。 我们使用 enum 关键字来声明枚举数据类型。用大写字母表示枚举值是一种常见的做法。 在Java中,所有枚举类默认都是fi
在 AngularJs 中设置 Select From Typescript 的默认选项值
发布时间:2023/04/14 浏览次数:132 分类:Angular
-
本教程提供了在 AngularJs 中从 TypeScript 中设置 HTML 标记选择的默认选项的解释性解决方案。
在 Angular 中使用 TypeScript 的 getElementById 替换
发布时间:2023/04/14 浏览次数:259 分类:Angular
-
本教程指南提供了有关使用 TypeScript 在 Angular 中替换 document.getElementById 的简要说明。这也提供了在 Angular 中 getElementById 的最佳方法。