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

如何简化键值为对应属性名字符串的JS对象声明 消除重复代码

无重复实现方案

你要的这种键值字符串完全相等的对象,有两种常用的无重复书写实现方式:

  1. 利用ES6对象属性简写(适合常量数量不多的场景)
    如果提前定义好和键同名的变量,对象声明时可以省略赋值部分:
const x = 'x', y = 'y', z = 'z';
const X = { x, y, z };
  1. 批量生成(适合常量数量多的场景)
    如果有大量同类键值对,可以遍历键名数组批量生成:
const X = Object.fromEntries(
  ['x', 'y', 'z'].map(key => [key, key])
);

这类写法的作用

生产环境中这类键值完全相同的常量对象,本质是字符串枚举集合,核心作用是规避硬编码魔法字符串的问题,具体收益包括:

  • 降低维护成本:后续需要修改某个值时,只需要修改常量定义处即可,不需要全局搜索替换零散的字符串
  • 减少拼写错误:直接引用常量时IDE会提供自动补全,远比对着手写字符串拼写可靠
  • 方便统一校验:可以直接用Object.values(X).includes(xxx)快速判断某个值是否属于合法枚举范围,不需要重复写全所有合法值做判断
  • 适配TS类型系统:可以直接基于这个常量生成对应的联合类型type XEnum = typeof X[keyof typeof X],不需要单独重复声明类型定义

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:36:05