迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > TypeScript >

如何在 Typescript 中比较枚举

作者:迹忆客 最近更新:2022/09/21 浏览次数:

要比较枚举,请使用点 . 表示法获取特定枚举属性的值并将其与另一个值进行比较,例如 if (MyEnum.Small < 2) {}。 数字枚举的值,没有提供初始值,是自动递增的整数,从 0 开始。

enum ShirtSizes {
  Small,
  Medium,
  Large,
}

const small = ShirtSizes.Small; // 👉️ 0
const medium = ShirtSizes.Medium; // 👉️ 1

if (small < medium) {
  console.log('✅ This runs');
}

if (small === 0) {
  console.log('✅ This runs');
}

const enumKey = ShirtSizes[ShirtSizes.Small];
console.log(enumKey); // 👉️ "Small"

if (enumKey === 'Small') {
  console.log('✅ This runs');
}

typescript 比较枚举

我们可以使用点表示法访问枚举上的特定值。

要将值与另一个值进行比较,请使用比较运算符之一,例如 <(小于)>(大于)或 ===(等于)。

if 块仅在满足条件时运行。

该示例显示了一个数字枚举,我们没有为其指定初始值,因为 Small 键的值是 0、Medium = 1 和 Large = 2。

使用数字枚举时,可以使用反向映射根据值获取对应的键。

enum ShirtSizes {
  Small,
  Medium,
  Large,
}

const small = ShirtSizes.Small; // 👉️ 0
const medium = ShirtSizes.Medium; // 👉️ 1

const enumKey = ShirtSizes[ShirtSizes.Small];
console.log(enumKey); // 👉️ "Small"

const eKey = ShirtSizes[0];
console.log(eKey); // 👉️ Small

上面的示例使用反向映射来获取枚举键,它对应于值 0。

请注意 ,我们只能在使用数字枚举时使用反向映射,因为它们不是为字符串枚举生成的。

这是一个如何获取字符串枚举的键和值的数组并检查数组中是否包含特定值的示例。

enum ShirtSizes {
  Small = 'SMALL',
  Medium = 'MEDIUM',
  Large = 'LARGE',
}

const keys = Object.keys(ShirtSizes);
console.log(keys); // 👉️ ['Small', 'Medium', 'Large']

if (keys.includes('Small')) {
  console.log('✅ This runs');
}

const values = Object.values(ShirtSizes);
console.log(values);

if (values.includes('SMALL' as unknown as ShirtSizes)) {
  console.log('✅ This runs');
}

TypeScript 中的枚举是真实的对象,因此我们可以使用 Object.keys()Object.values() 方法来获取枚举键和值的数组。

示例使用 includes() 方法检查枚举的键和值中是否包含特定值,但我们可以根据用例进行调整。

如果使用数字枚举,Object.keys() 方法会返回一个包含枚举键和值的数组,因此我们必须过滤掉不必要的值。

enum ShirtSizes {
  Small,
  Medium,
  Large,
}

const keys = Object.keys(ShirtSizes).filter((v) => isNaN(Number(v)));
console.log(keys); // 👉️ ['Small', 'Medium', 'Large']

if (keys.includes('Small')) {
  console.log('✅ This runs');
}

const values = Object.values(ShirtSizes).filter((v) => !isNaN(Number(v)));
console.log(values); // 👉️ [0, 1, 2]

数字枚举的概念是相同的,但是我们必须添加对 filter 方法的调用以从返回的数组中过滤掉不必要的值。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 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 中声明枚举

发布时间:2023/07/20 浏览次数:102 分类:Java

在 Java 中声明 DownloadType 的枚举将是本文讨论的主题。 让我们首先看看枚举的用途。Java 中枚举的用途

Java 中枚举的继承

发布时间:2023/07/16 浏览次数:992 分类:Java

在 Java 中,枚举(枚举的缩写)是一种具有固定常量值集的数据类型。 我们使用 enum 关键字来声明枚举数据类型。用大写字母表示枚举值是一种常见的做法。 在Java中,所有枚举类默认都是fi

PHP 中的枚举

发布时间:2023/03/29 浏览次数:153 分类:PHP

本教程将教授如何在 PHP 中创建和使用枚举。你将学习如何使用抽象类模拟枚举。此外,你还将学习如何在 PHP 中使用本机枚举。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便