我设置了一个新的 React TypeScript 项目,然后使用配置提示符安装了 ESLint。我指定我的项目使用 React 和 TypeScript。
对于某些样式警告,我从 TypeScript 和 ESLint 中收到重复的警告。我怎样才能使 TypeScript 和 ESLint 警告不重叠?我是否必须手动从 ESLint 中删除一些规则,或者是否有预制的 .eslintrc 配置文件来解决这个问题?
您可以通过禁用
.eslintrc.js
(或 .eslintrc.json
等)中的规则来消除 ESLint 警告,如下所示:
..
rules: {
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': 'off',
..
}
..
但是,我个人更喜欢禁用 TypeScript 警告,因为 ESLint 规则更易于配置。要在 TypeScript 中禁用它,请在您的
tsconfig.json
: 中设置这些编译器选项
..
"compilerOptions": {
"noUnusedLocals": false,
"noUnusedParameters": false,
..
}
..
现在,您可以调整 ESLint 规则,使其不触发以
_
开头的标识符,方法是将其包含在您的 .eslintrc.js
中:
..
rules: {
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars':
['warn', {argsIgnorePattern: '^_', varsIgnorePattern: '^_'}],
..
}
请注意,建议始终通过
no-unused-vars
文档禁用基本规则
@typescript-eslint/no-unused-vars
。有关 @typescript-eslint/no-unused-vars
所有选项的概述,请查看 no-unused-vars
文档,因为选项是相同的。
更改 IDE (VSCode) 设置以明确告诉它仅使用 ESLint 进行打字稿格式化,并禁用本机验证以防止重复警告。
对于 VSCode,添加/更改以下设置:
"typescript.validate.enable": false, // disable native validation
"[typescript]": {
"editor.defaultFormatter": "dbaeumer.vscode-eslint" // use eslint
}
请注意,tsconfig
compilerOptions
并不专门用于 linting 代码,更改这些选项可能会在以后引起问题,例如如果 linter 被贡献者绕过或者 ESLint 被完全从应用程序中删除。