迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

PHP 中的枚举

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

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

在 TypeScript 中返回一个 Promise

发布时间:2023/03/19 浏览次数:182 分类:TypeScript

本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便