ESLint 的 inline 注释怎么突然不生效了?

♫星语 阅读 7

我之前用 // eslint-disable-next-line 跳过某一行的 ESLint 报错一直没问题,但今天新加的一行却还是报错,完全没被忽略。

代码是这样的:

const unusedVar = 'I know it's unused'; // eslint-disable-next-line no-unused-vars
console.log('hello');

是不是注释位置写错了?还是规则名变了?试了几个写法都不行,有点懵。

我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
❤名赫
❤名赫 Lv1
这个问题听起来挺常见的,有时候 ESLint 的行为会让人摸不着头脑。我们一步一步来排查一下。

首先,eslint-disable-next-line 注释的作用是告诉 ESLint 忽略下一行的错误。你提到的写法看起来是对的,但是注释的位置很重要。具体来说,eslint-disable-next-line 需要放在它所要忽略的行的前一行的末尾。

你贴的代码里,注释的位置是在错误行的后面,这样 ESLint 就不会识别到这个注释了。正确的写法应该是把注释移到 unusedVar 定义的那一行的前面,像这样:

// eslint-disable-next-line no-unused-vars
const unusedVar = 'I know it's unused';
console.log('hello');


这里需要注意的是,注释一定要紧跟在要忽略的代码行的上面,并且要确保没有空行隔开。如果有空行或者换成了多行注释 /* */,ESLint 可能就不会生效了。

接下来,检查一下你的 ESLint 配置文件(通常是 .eslintrc.js 或类似的文件),确保 no-unused-vars 规则没有被全局禁用或者覆盖。虽然 eslint-disable-next-line 应该会覆盖局部配置,但有时候全局配置可能会有奇怪的影响。

最后,清理一下缓存并重启你的编辑器或者终端。有时候 IDE 或者编辑器的缓存会导致配置没有及时更新。

通过这些步骤,应该可以解决你遇到的问题。如果还不行,可能需要检查一下是否有其他插件或者工具干扰了 ESLint 的正常工作。希望这些建议对你有帮助。
点赞
2026-03-25 09:00