javascript 实例化的模式不会扰乱 eslint

Pattern for javascript instantiation which doesn't upset eslint

我见过很多使用以下模式的库 - 例如clipboard.js 我刚刚使用的:

var clipboard = new Clipboard(".cpy");

这就是它发挥魔力所需的一切。但这惹恼了 ESLint:

clipboard is defined but never used (no-unused-vars)

我看过的一些解决方法是:

我对其中任何一个都不是很满意。但是,是否有 'better' 模式而不是 var x = new X(); 模式用于实例化库?或者告诉 ESLint 发生了什么的更好方法?

Per this PR 您现在可以执行每行忽略:

var clipboard = new Clipboard('.cpy') // eslint-disable-line no-unused-vars

这只会影响这一行,不会让您的代码库对所有未使用的变量开放。

您之前可以使用以下方法执行相同操作:

/*eslint-disable no-eval*/
var clipboard = new Clipboard('.cpy');
/*eslint-enable*/

ESLint 就在这里。如果您不需要该实例,则无需将其存储在变量中:

new Clipboard('.cpy'); // eslint-disable-line no-new
// no `var clipboard`

当然,通过构造函数执行副作用是一种反模式,但如果 Clipboard 那样工作,就没有办法解决它。

理论上不应该在使用后进行一些清理吗?

 clipboard.destroy();