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

如何使用@typescript-eslint/naming-convention规则强制catch变量命名一致性?

如何使用@typescript-eslint/naming-convention规则强制catch变量命名一致性?

嘿,刚好我之前也琢磨过这个需求——不想额外装其他插件,就用@typescript-eslint自带的规则来搞定catch变量的命名统一对吧?其实完全可以实现,核心是找对@typescript-eslint/naming-convention规则里的精准选择器。

你只需要在ESLint配置文件的rules部分,给@typescript-eslint/naming-convention添加针对catch块参数的规则配置:

{
  "@typescript-eslint/naming-convention": [
    "error",
    // 保留你已有的其他命名规则...
    {
      selector: "CatchClauseParameter",
      format: ["camelCase"],
      custom: {
        regex: "^error$",
        match: true
      },
      message: "Catch块的参数必须命名为'error'"
    }
  ]
}

我给你拆解下这个配置的关键点:

  • selector: "CatchClauseParameter":这个选择器是核心,它会精准匹配所有catch语句块里的参数,不会误影响其他变量的命名规则
  • custom.regex: "^error$":通过正则强制要求变量名必须严格等于error,多一个字符、少一个字符或者换个拼写都不行
  • message:可以自定义报错提示,让团队成员一眼就知道要改成啥名字

举个实际的例子,如果你写了这样的代码:

try {
  // 业务逻辑代码
} catch (ex) {
  // 错误处理逻辑
}

ESLint就会抛出你自定义的错误提示,要求把ex改成error;而如果写成catch (error) { ... }就完全符合规则,不会报错。

对了,你提到的那个第三方插件确实有类似规则,但既然我们已经在用@typescript-eslint的规则集,直接用内置的选择器配置显然更省心,不用额外引入依赖。

备注:内容来源于stack exchange,提问作者Jacob Morrison

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 07:59:55