You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript中如何遍历整数值枚举并正确获取键值对?

TypeScript数字枚举遍历:获取正向key-value对

针对你定义的数字枚举:

export enum Actions {
  All = 1,
  Success = 2,
  Failed = 3
}

TypeScript的数字枚举会自动生成反向映射(比如Actions[1] = "All"),所以直接遍历会得到6个条目(3个正向+3个反向)。要只获取原始的key("All"、"Success"、"Failed")和对应的value(1、2、3),可以用以下几种实用方法:

方法1:遍历中过滤类型

通过判断枚举值的类型,筛选出正向映射的条目:

for (const key in Actions) {
  // 反向映射的value是字符串,正向的是数字
  if (typeof Actions[key as keyof typeof Actions] === 'number') {
    const value = Actions[key as keyof typeof Actions] as number;
    console.log(`key: ${key}, value: ${value}`);
  }
}

方法2:先提取有效key再遍历

先过滤出非数字的key(反向映射的key是数字),再遍历获取对应value:

// 过滤掉数字类型的key
const validKeys = Object.keys(Actions).filter(key => isNaN(Number(key)));

validKeys.forEach(key => {
  const value = Actions[key as keyof typeof Actions];
  console.log(`key: ${key}, value: ${value}`);
});

方法3:用Object.entries过滤

通过Object.entries获取所有键值对,再筛选出value为数字的条目:

Object.entries(Actions).forEach(([key, value]) => {
  if (typeof value === 'number') {
    console.log(`key: ${key}, value: ${value}`);
  }
});

三种方法最终都会输出:

key: All, value: 1
key: Success, value: 2
key: Failed, value: 3

内容的提问来源于stack exchange,提问作者Hey Itsme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 00:48:20