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

为什么递归函数会触发ESLint的no-unused-vars规则报错?

递归函数触发no-unused-vars报错的解决方案

错误原因

ESLint 内置的no-unused-vars规则无法识别函数内部的递归自引用属于有效变量使用场景,如果你正在使用TypeScript,内置规则本身不支持TypeScript语法解析,也会引发这类误判。

可复现示例代码

const factorial = (x: number) => {
  if (x === 0) return 1;

  return x * factorial(x - 1);
};

报错截图

报错截图

修复方案

  • 方案1:更换适配TypeScript的校验规则(推荐)
    首先确保你已经安装@typescript-eslint/eslint-plugin、@typescript-eslint/parser依赖,随后修改ESLint配置文件,关闭内置规则,启用TypeScript ESLint提供的no-unused-vars规则:
    {
      "parser": "@typescript-eslint/parser",
      "plugins": ["@typescript-eslint"],
      "rules": {
        "no-unused-vars": "off",
        "@typescript-eslint/no-unused-vars": ["error"]
      }
    }
    
  • 方案2:临时忽略单条规则校验
    如果你不想修改全局规则,可以在递归函数声明上方加单行忽略注释:
    // eslint-disable-next-line no-unused-vars
    const factorial = (x: number) => {
      if (x === 0) return 1;
      return x * factorial(x - 1);
    };
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:54:04