最近,在vcs合并出错后,我们发现ES6类(至少在NodeJS中)使您可以定义两次方法。即以下程序运行无投诉。
class Test {
foo() {
console.log("first one")
}
foo() {
console.log("second one")
}
}
const test = new Test;
test.foo()
在我们的实际示例中,这两个方法定义在源文件中相差很远,并且使我们陷入了一段时间。有没有一种方法可以强制NodeJS中的ES6类not允许这样做?是否有一个我们可以运行的标志node
不允许这样做,或者可能是es-lint规则?还是我没有想到的第三件事?
如果有一个定义了两个方法的单一类,我们基本上希望能阻止程序运行。
ESLint提供no-dupe-class-members规则来检测这种类型的问题。这是eslint:recommended
配置的一部分,因此,如果尚未收到错误,则很可能尚未启用它。如果这是您要采用的方法,那么启用特定规则很容易,但是我真的会考虑总体上启用eslint:recommended
,这样您就可以减少维护自己的时间。您可以随时关闭不喜欢的eslint:recommended
激活警告,但是至少您不必自己维护选择加入插件的完整列表,而只需维护选择 out代替。