如何将 ESLint no-unused-vars 用于代码块?

How can I use ESLint no-unused-vars for a block of code?

我需要在 ESLint 中禁用一些变量检查。

目前,我正在使用这段代码,但没有得到想要的结果:

/* eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "Hey" }] */
export type Hey = {
  a: string,
  b: object
}

两个问题:

类似...

/* eslint rule disable"*/

// I want to place my block of code, here

/* eslint rule disable"*/

要禁用 @typescript-eslint/no-unused-vars 警告:

  • 对于当前行:
const unusedVar = 1; // eslint-disable-line @typescript-eslint/no-unused-vars
  • 下一行:
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const unusedVar = 1;
  • 对于一个块:
/* eslint-disable @typescript-eslint/no-unused-vars */
const unusedVar1 = 1;
const unusedVar2 = 2;
/* eslint-enable @typescript-eslint/no-unused-vars */

原回答

只需使用一对线:

/* eslint-disable no-unused-vars */

// ... your code here with unused vars...

/* eslint-enable no-unused-vars */

或者,您可以禁用一行规则:

// Based on your Typescript example

export type Hey = { // eslint-disable-line no-unused-vars
  a: string,
  b: object
}

还有一个选择...

function doStuff({
  // eslint-disable-next-line no-unused-vars
  unused,
  usedA,
  usedB
}) {

对于 typescript eslint 用户,只需在您希望忽略的行的末尾添加:

// eslint-disable-line @typescript-eslint/no-unused-vars

如果您有多个想要忽略的重叠规则(例如 typescript 和标准 js),您可以通过用逗号分隔来指定多个要忽略的规则:

// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars

对于任何想知道为什么它不适用于

的人
// eslint-disable some-rule/specific-rule

只需在多行注释中包含相同的禁用语句即可。

/* eslint-disable some-rule/specific-rule  */

在整个块的多行注释中封装 eslint 规则。 因此,如果您将多行注释放在函数的开头,它将对整个函数块禁用该规则。如果将它放在文件的开头,它将对整个文件禁用该规则。