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)
我看过的一些解决方法是:
- 对 'use'
clipboard
的虚假 console.log()
调用
/* exported clipboard */
- 但我无法让它工作(也许我的 eslint 需要更新?)
/* eslint-disable no-unused-vars */
- 并希望在项目的其他地方取得最好的成绩
- 将
varsIgnorePattern
放入选项中 - 不是一个非常 'quick' 的解决方案,并且每个项目都不同
我对其中任何一个都不是很满意。但是,是否有 '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();
我见过很多使用以下模式的库 - 例如clipboard.js 我刚刚使用的:
var clipboard = new Clipboard(".cpy");
这就是它发挥魔力所需的一切。但这惹恼了 ESLint:
clipboard is defined but never used (no-unused-vars)
我看过的一些解决方法是:
- 对 'use'
clipboard
的虚假 /* exported clipboard */
- 但我无法让它工作(也许我的 eslint 需要更新?)/* eslint-disable no-unused-vars */
- 并希望在项目的其他地方取得最好的成绩- 将
varsIgnorePattern
放入选项中 - 不是一个非常 'quick' 的解决方案,并且每个项目都不同
console.log()
调用
我对其中任何一个都不是很满意。但是,是否有 '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();