eslint:禁用警告 - 为特定功能“定义但从未使用过”?

eslint: disable warning - `defined but never used` for specific function?

所以我有这个功能:

function render(){
    // do stuff
}

我不调用那个函数,因为它是作为事件函数从 html 调用的,例如:

<textarea id="input" class="input-box" onkeyup="render()"></textarea>

好吧 eslint 没有看到,所以它给出了警告(render 已定义,但从未使用过)。有没有办法指定该函数在别处调用?或者只是忽略警告?

例如,如果使用全局变量,我可以做/* global SomeVar*/,它将消除未定义变量的警告。也许可以对示例中的函数做类似的事情?

提供 config comment 告诉它忽略该规则( 已定义但从未使用 no-unused-vars 规则)

function render() { // eslint-disable-line no-unused-vars
    // do stuff
    var x; // still raises defined but never used
}

If you dont want to change the code.

ESLint 提供了两种禁用方式,两种方式都通过 comments 启用 linting。您只添加了函数前 /* eslint-disable */ 和函数后 /* eslint-enable */

例子

/* eslint-disable */ <-- Before function

function render(){
   // do stuff
}

/* eslint-enable */  <-- After function

More info

eslint 有一个 caughtErrors 选项,用于捕获块参数验证并且可以具有以下每个值:

  1. none(默认)以避免检查这些错误。
  2. all

因此您可以通过更改此选项来简单地忽略未使用的错误。这是一个一般示例:

eslint no-unused-vars: ["error", { "caughtErrors": "none" }]

您可以为此使用 exported comment block,例如:

/* exported render */

这告诉 eslint 可以不使用声明,这在语义上比仅仅使警告静音更正确。它也可能适用于某些其他工具,例如 minifiers,但这纯粹是我的猜测。

把这个规则放在.eslintrc.js文件里,请不要忘记重启服务..

module.exports = {
      rules: { 
        "no-unused-vars": "off",
      },
    }

与 Alex K. 的建议非常相似,还有 eslint-disable-next-line。我通常更喜欢不要让代码的方法定义行太长。你可以这样使用它:

// eslint-disable-next-line no-unused-vars
function render(){
    // do stuff
}