我收到来自
@typescript-eslint
插件的 eslint 警告。
“instance”已声明,但其值从未被读取。 ts(6133)
VSCode 建议使用以下行作为快速修复:
// eslint-disable-next-line @typescript-eslint/no-unused-vars
但是,添加这一行没有什么区别,见下文:
请注意:我想使用此处所示的内联规则来仅禁用一个特定行的警告。我确实不想想为整个文件禁用它,也不想为整个项目禁用它。
PS:这是一个使用 TypeScript 和 React 的新鲜 Vite 项目。
我相信我已经找到了解决方案。
1.) tsconfig
在
tsconfig.json
中,添加以下内容。这将阻止在使用 npm run build
构建项目时出现编译器错误。
对于 VSCode 中受影响的代码行,您仍然会收到黄色下划线警告(如果您尚未执行任何其他操作来解决这些问题)。
"compilerOptions": {
/* Linting */
"noUnusedLocals": false,
"noUnusedParameters": false,
},
2.) eslintrc
在
.eslintrc.cjs
中,添加以下内容。这将确保未使用的变量被标记为警告。替代选择是将它们标记为错误或完全忽略它们。请注意,我禁用了 JS 版本,但启用了 TS 版本。
同样,对于 VSCode 中受影响的代码行,您仍然会收到黄色下划线警告(如果您尚未执行任何其他操作来解决这些问题)。
rules: {
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "warn",
}
3.) eslint-禁用
在要禁用警告的文件中,添加内联规则。请注意,如果要具体,则必须添加规则的 TS 版本,例如
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const [instance, setInstance] = useState<SwiperClass | null>(null);
或者,您可以简单地使用
// eslint-disable-next-line
而不指定规则。
我建议在你的 eslintrc 文件中添加以下规则
rules: {
...,
'@typescript-eslint/no-unused-vars': [
'error',
{ argsIgnorePattern: '^_', varsIgnorePattern: '^_' },
],
}
这样你就可以通过这种方式消除错误:
const [_instance, setInstance] = useState(null)
您可以通过解构数组中的第二个元素而不将第一个元素分配给变量来避免错误:
const [, setInstance] = useState<SwiperClass | null>(null);
我不确定为什么您无法抑制该错误,但您可能需要禁用多个规则。 可能内置的
no-unused-vars
规则适用于此?
// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars