Skip to main content

no-unused-vars

Disallow unused variables.

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


此规则扩展了基本 eslint/no-unused-vars 规则。 它增加了对 TypeScript 功能(例如类型)的支持。

英:This rule extends the base eslint/no-unused-vars rule. It adds support for TypeScript features, such as types.

相对于 TypeScript 的优势

TypeScript 提供 noUnusedLocalsnoUnusedParameters 编译器选项,可以分别报告未使用的局部变量或参数的错误。 如果你不想设置 ESLint 和 typescript-eslint,那么这些编译器选项可以很方便地使用。 然而:

英:TypeScript provides noUnusedLocals and noUnusedParameters compiler options that can report errors on unused local variables or parameters, respectively. Those compiler options can be convenient to use if you don't want to set up ESLint and typescript-eslint. However:

  • 这些 lint 规则比 TypeScript 的编译器选项更可配置。
    • 例如,varsIgnorePattern 选项 可以自定义始终允许豁免哪些名称。 TypeScript 将其豁免硬编码为以 _ 开头的名称。
  • 行、文件和文件夹中的 ESLint 可以配置。 TypeScript 编译器选项链接到其 TSConfig 文件。
  • 许多项目将 TypeScript 报告的错误配置为比 ESLint 投诉更积极地阻止构建。 在未使用的变量上阻塞构建可能会很不方便。

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

英:We generally recommend using @typescript-eslint/no-unused-vars to flag unused locals and parameters instead of TypeScript.

提示

即使项目中未启用 noUnusedLocalsnoUnusedParameters,VS Code 等编辑器通常仍会 "变灰" 未使用的变量。

如何使用

.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/no-unused-vars 选项

资源

摘自 ❤️ ESLint 内核