跳至主要内容

禁止未使用变量

禁止未使用变量。

"plugin:@typescript-eslint/recommended" 中扩展 ESLint 配置 将启用此规则。

此规则扩展了基本 eslint/no-unused-vars 规则。它为 TypeScript 特性(如类型)添加了支持。

相较于 TypeScript 的优势

TypeScript 提供了 noUnusedLocalsnoUnusedParameters 编译器选项,分别可以报告未使用局部变量或参数的错误。如果您不想设置 ESLint 和 typescript-eslint,这些编译器选项可能很方便使用。但是

  • 这些 lint 规则比 TypeScript 的编译器选项更可配置。
    • 例如,varsIgnorePattern 选项 可以自定义始终允许豁免哪些名称。TypeScript 将其豁免硬编码为以 _ 开头的名称。如果您想模拟 TypeScript 豁免以 _ 开头的名称的风格,可以使用以下配置(这包括错误)
      {
      "rules": {
      "@typescript-eslint/no-unused-vars": [
      "error",
      {
      "args": "all",
      "argsIgnorePattern": "^_",
      "caughtErrors": "all",
      "caughtErrorsIgnorePattern": "^_",
      "destructuredArrayIgnorePattern": "^_",
      "varsIgnorePattern": "^_",
      "ignoreRestSiblings": true
      }
      ]
      }
      }
  • ESLint 可以在 行、文件和文件夹内配置。TypeScript 编译器选项与其 TSConfig 文件相关联。
  • 许多项目将 TypeScript 报告的错误配置为比 ESLint 警告更积极地阻止构建。在未使用变量上阻止构建可能不方便。

我们通常建议使用 @typescript-eslint/no-unused-vars 来标记未使用局部变量和参数,而不是 TypeScript。

提示

即使项目中未启用 noUnusedLocalsnoUnusedParameters,像 VS Code 这样的编辑器通常仍然会将未使用变量“灰显”。

另请参阅 ESLint 提供的类似规则

选项

请参阅 eslint/no-unused-vars 选项.

如何使用

.eslintrc.cjs
module.exports = {
"rules": {
// Note: you must disable the base rule as it can report incorrect errors
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "error"
}
};

在游乐场中尝试此规则 ↗

资源

来自 ESLint 核心 的 ❤️.