关闭特定行的 eslint 规则

Turning off eslint rule for a specific line

本文关键字:eslint 规则      更新时间:2023-09-26

为了关闭JSHint中特定行的linting规则,我们使用以下规则:

/* jshint ignore:start*/
$scope.someVar = ConstructorFunction();
/* jshint ignore:end */

我一直在尝试为 eslint 找到上述等效项。

禁用下一行:

// eslint-disable-next-line no-use-before-define
var thing = new Thing();

或者使用单行语法:

var thing = new Thing(); // eslint-disable-line no-use-before-define

查看 eslint 文档

<小时 />

感谢哈利勒·拉瓦纳的评论

如果您不关心特异性,您可以只执行//eslint-disable-line,它似乎禁用了给定行的所有规则

var thing = new Thing() // eslint-disable-line

更新

ESlint 现已更新为禁用单行的更好方法

// eslint-disable-next-line $rulename

看到@goofballLogic的精彩答案。

注意,虽然,以上不适用于jsx,例如React网络应用程序

<小时 />

旧答案

您可以使用以下一对禁用/启用注释 - 请注意仅/*eslint ... */语法有效,//eslint ...不起作用

/* eslint-disable */
alert('suppress all warnings between comments')
/* eslint-enable */
/* eslint-disable eqeqeq */
alert('suppress specific warning eg eqeqeq between comments')
/* eslint-enable eqeqeq */
<小时 />

禁用特定警告,例如 eqeqeq整个文件,您可以在文件顶部添加注释:

/* eslint eqeqeq:0 */

当多规则被忽略时,将它们列在用空格分隔的 1 行上

/* eslint jsx-a11y/alt-text:0 react/jsx-no-duplicate-props:0 */

您还可以通过在启用(打开)和禁用(关闭)块中指定特定规则来禁用它们(而不是全部):

/* eslint-disable no-alert, no-console */
alert('foo');
console.log('bar');
/* eslint-enable no-alert */

通过上面的@goofballMagic链接:http://eslint.org/docs/user-guide/configuring.html#configuring-rules

来自配置

ESLint - 使用内联注释禁用规则:

/* eslint-disable no-alert, no-console */

/* eslint-disable */
alert('foo');
/* eslint-enable */

/* eslint-disable no-alert, no-console */
alert('foo');
console.log('bar');
/* eslint-enable no-alert, no-console */

/* eslint-disable */
alert('foo');

/* eslint-disable no-alert */
alert('foo');

alert('foo'); // eslint-disable-line
// eslint-disable-next-line
alert('foo');

alert('foo'); // eslint-disable-line no-alert
// eslint-disable-next-line no-alert
alert('foo');

alert('foo'); // eslint-disable-line no-alert, quotes, semi
// eslint-disable-next-line no-alert, quotes, semi
alert('foo');

foo(); // eslint-disable-line example/rule-name

答案

您可以使用内联注释:// eslint-disable-next-line rule-name

// eslint-disable-next-line no-console
console.log('eslint will ignore the no-console on this line of code');

参考

ESLint - 禁用具有内联注释的规则

行尾注释的一般结尾,// eslint-disable-line ,后面不需要任何东西:无需查找代码来指定您希望 ES Lint 忽略的内容。

如果出于快速调试以外的任何原因需要忽略任何语法,则会遇到问题:为什么不更新您的delint配置?

我喜欢// eslint-disable-line允许我插入console以快速检查服务,而不会因为我的开发环境而因违反协议而阻碍我。(我通常禁止console,并使用日志记录类 - 有时基于console构建。

或者对于

下一行的多个忽略,使用逗号将规则串起来

// eslint-disable-next-line class-methods-use-this, no-unused-vars

要为以下文件的其余部分禁用单个规则:

/* eslint no-undef: "off"*/
const uploadData = new FormData();

禁用特定行上的所有规则:

alert('foo'); // eslint-disable-line

我的答案,类似于给出的其他答案,但显示了如何在同一行上为自己添加评论。

// eslint-disable-line // THIS WON"T WORK

如果您还需要在该行上写注释,请使用--(例如,也许为什么禁用 eslint)

// eslint-disable-line -- comment to self (This DOES work)

可以与特定的 eslint 规则结合使用以忽略:

// eslint-disable-line no-console -- comment to self (This Also Works!)

禁用特定行上的所有规则:

// @ts-ignore
$scope.someVar = ConstructorFunction();

单行注释在 react 哑功能组件中对我不起作用,我通过添加/* eslint-disable insertEslintErrorDefinitionHere */

(通常,如果您正在使用VS代码并遇到eslint错误,则可以单击给出错误的行,灯泡将显示在VS代码中,右键单击灯泡并选择任何禁用选项,VS代码将为您完成。

我已经禁用了下面的某件事

<TableRow
   key={index}
   className={classes.tableRow}
   onClick={this.onSelectedValue.bind(this, user)} // eslint-disable-line
>{index}
</TableRow>

您可以在项目中添加给 .eslintignore 文件带来错误的文件。像所有 .vue 文件一样,只需添加/*.vue