ES6:对于类,每个方法都有一个单独的定义

问题描述 投票:0回答:1

最近,在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规则?还是我没有想到的第三件事?

如果有一个定义了两个方法的单一类,我们基本上希望能阻止程序运行。

node.js oop ecmascript-6 lint
1个回答
0
投票

ESLint提供no-dupe-class-members规则来检测这种类型的问题。这是eslint:recommended配置的一部分,因此,如果尚未收到错误,则很可能尚未启用它。如果这是您要采用的方法,那么启用特定规则很容易,但是我真的会考虑总体上启用eslint:recommended,这样您就可以减少维护自己的时间。您可以随时关闭不喜欢的eslint:recommended激活警告,但是至少您不必自己维护选择加入插件的完整列表,而只需维护选择 out代替。

© www.soinside.com 2019 - 2024. All rights reserved.