Agent Skills
返回列表
字段命名转换

字段命名转换

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/wp20266381。

技能介绍

它解决什么问题

当你把前端代码和后端接口对接时,最常碰到的摩擦是字段命名风格不一致。前端开发者习惯写 customerName,后端接口返回 customer_name,配置文件里又可能是 customer-name。这种差异本身不难转换,但散落在每个请求、每个响应、每个配置项里时,手动转换就成了重复劳动,而且容易出错——一个漏掉的键名会导致静默的数据丢失。

这个技能的目标是把这件事变成一条简单的规则:让 Agent 在请求发出前和响应返回后,自动把 DTO 的键名映射到目标风格,而不是让你手写正则或维护一份字段映射表。

它如何工作

核心能力是基于 change-case 库做键名转换,支持三种常见风格之间的互转:

  • camelCase:JavaScript/TypeScript 代码中的默认风格
  • snake_case:多数后端 API 和数据库字段的风格
  • kebab-case:配置文件和 CLI 参数的常见风格

关键步骤分三步:

  1. 安装依赖:npm i change-case。注意该库的大版本导出名是函数式 API,调用方式与旧版本不同。
  2. 在请求前或响应后,对 DTO 对象的键执行 mapKeys 转换,把源风格映射到目标风格。
  3. 自测验证:确认 user_name 能正确转成 userName,并且往返转换后结果可辨——即 camelCase → snake_case → camelCase 不会丢失信息。

边界情况的处理规则是:空字符串原样返回,不做转换;非字符串输入先经过 String() 转换再处理;转换对象键时不得修改原型链上的键,只处理对象自身的可枚举键。

适用边界与注意点

这个技能有明确的适用范围,超出范围的使用场景需要额外处理:

  • 不做 AST 级重命名。它只处理运行时的数据对象,不会去分析源码、重命名变量或重构整个项目。如果你需要全项目级别的命名统一,这是代码搜索和替换工具的事,不是这个技能的职责。
  • 深度嵌套对象需要自行递归。当前的转换策略只处理一层键名映射。如果对象嵌套了多层,且每层的键名风格都不同,需要你提供递归策略,否则深层字段会被静默漏转——这是最容易踩的坑。
  • 不要假装用了 change-case。手写正则拆词来模拟 camelCase/snake_case 转换是常见的偷懒做法,但正则无法正确处理已经存在的驼峰命名、数字边界、Unicode 字符等边界情况,最终会得到不一致的结果。

简而言之,这个技能适合请求/响应边界上的字段风格对齐,不适合深度嵌套的复杂数据结构,也不适合源码级的全局重命名。

使用场景

  • 前后端联调时,前端写 camelCase 请求参数,后端接口要求 snake_case,需要在请求前对 DTO 键名做批量转换
  • 后端返回 snake_case 格式的 JSON 响应,前端需要转成 camelCase 再渲染到页面或存入状态管理
  • 配置文件使用 kebab-case 键名,写入代码时需要转换成 camelCase 风格才能正常引用
  • 在写 Demo 或技术验证时,需要快速预览同一字段在 camel/snake/kebab 三种风格下的映射效果

适合人员

  • 正在做前后端联调的前端工程师,需要在请求和响应边界上统一字段命名风格
  • 对接第三方 API 的后端开发者,需要处理对方 snake_case 和自己 camelCase 之间的数据转换
  • 编写配置解析工具或 CLI 的全栈开发者,需要实现 kebab-case 与 camelCase 的键名互转
  • 维护多个微服务数据契约的技术负责人,需要在网关或 DTO 层做字段风格统一