禁止未使用变量
禁止未使用变量。
✅
在 "plugin:@typescript-eslint/recommended"
中扩展 ESLint 配置 将启用此规则。
此规则扩展了基本 eslint/no-unused-vars
规则。它为 TypeScript 特性(如类型)添加了支持。
相较于 TypeScript 的优势
TypeScript 提供了 noUnusedLocals
和 noUnusedParameters
编译器选项,分别可以报告未使用局部变量或参数的错误。如果您不想设置 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。
提示
即使项目中未启用 noUnusedLocals
和 noUnusedParameters
,像 VS Code 这样的编辑器通常仍然会将未使用变量“灰显”。
另请参阅 ESLint 提供的类似规则
选项
如何使用
.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"
}
};
在游乐场中尝试此规则 ↗