如何禁用 eslint nextline 的多个规则

Posted

技术标签:

【中文标题】如何禁用 eslint nextline 的多个规则【英文标题】:How to disable multiple rules for eslint nextline 【发布时间】:2019-11-04 22:43:50 【问题描述】:

我有这个代码:

const subTotal = orderInfo.details.reduce((acc, cv) => acc += Number(cv.price) * Number(cv.quantity), 0);

我想为此行禁用两种 ESLint 类型的检查,no-return-assignno-param-reassign

我是这样尝试的:

/* eslint-disable-next-line no-return-assign eslint-disable-next-line no-param-reassign */
const subTotal = orderInfo.details.reduce((acc, cv) => acc += Number(cv.price) * Number(cv.quantity), 0);

但我的编辑器仍然显示 eslint(no-return-assign) lint 错误。

【问题讨论】:

为什么不只是=> acc + ...?那么你无论如何都不会违反规则。不需要分配。 是的,这看起来不错。无论如何,如果您知道的话,请告诉我,如果在任何情况下用户想要为下一行的多个规则禁用 eslint 规则。在这种情况下可以做什么。有没有办法解决这种情况下的 no-return-assign 问题 【参考方案1】:

如果要禁用多个 ESLint 错误,可以执行以下操作(注意逗号):

下一行:
// eslint-disable-next-line no-return-assign, no-param-reassign
( your code... )
对于行:
( your code... ) // eslint-disable-line no-return-assign, no-param-reassign
或者对于整个代码块(请注意,这只适用于多行注释语法)
/* eslint-disable no-return-assign, no-param-reassign */
( your code... )
/* eslint-enable no-return-assign, no-param-reassign */

请参阅 ESLint 文档的 Configuring Rules 部分。

(虽然如果您不能始终遵守某些规则,那么在您的 .eslintrc 文件中简单地禁用这些错误可能是一个更好的选择。)

【讨论】:

奇怪的是eslint-disable(没有next-line)只适用于/* ... */ cmets 而不是// cmets。 @JennyO'Reilly 从他们的角度来看,这确实是一个奇怪的决定。我会在答案中说明。 对于那些将eslint-disable-next-line 转换为eslint-disable(用于多行)的人,请记住两件事。 1. /* */ 而不是 // 2. 它是 eslint-disable 而不是 eslint-disable-next-line。只是重申因为我做了同样的事情并且由于第二点而不得不搜索更多的东西。将来可能对其他人有帮助。【参考方案2】:

您应该改用逗号。

/* eslint-disable-next-line no-return-assign, no-param-reassign */
const subTotal = orderInfo.details.reduce((acc, cv) => acc += Number(cv.price) * Number(cv.quantity), 0);

【讨论】:

以上是关于如何禁用 eslint nextline 的多个规则的主要内容,如果未能解决你的问题,请参考以下文章

vue cli3及以上如何禁用eslint检查?

如何正确禁用 eslint?

使用 eslint 时如何禁用 no-plusplus?

Shopware 6 如何在监视脚本期间禁用 ESLint?

如何在 vue-cli 3 上禁用 eslint?

如何禁用 eslint 上的错误(更漂亮/更漂亮)?