【问题标题】:How to disable multiple rules for eslint nextline如何禁用 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 问题

标签: javascript eslint eslintrc


【解决方案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);

【讨论】:

    猜你喜欢
    • 2021-10-16
    • 2017-07-04
    • 2020-06-04
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    相关资源
    最近更新 更多