版本

no-dupe-class-members

禁止重复的类成员

推荐

配置文件中使用来自 @eslint/jsrecommended 配置会启用此规则。

如果在类成员中存在相同名称的声明,则最后一个声明会静默覆盖其他声明。这可能导致意外的行为。

class Foo {
  bar() { console.log("hello"); }
  bar() { console.log("goodbye"); }
}

var foo = new Foo();
foo.bar(); // goodbye

规则详情

此规则旨在标记在类成员中使用重复名称的情况。

示例

此规则的错误代码示例

在游乐场中打开
/*eslint no-dupe-class-members: "error"*/

class A {
  bar() { }
  bar() { }
}

class B {
  bar() { }
  get bar() { }
}

class C {
  bar;
  bar;
}

class D {
  bar;
  bar() { }
}

class E {
  static bar() { }
  static bar() { }
}

此规则的正确代码示例

在游乐场中打开
/*eslint no-dupe-class-members: "error"*/

class A {
  bar() { }
  qux() { }
}

class B {
  get bar() { }
  set bar(value) { }
}

class C {
  bar;
  qux;
}

class D {
  bar;
  qux() { }
}

class E {
  static bar() { }
  bar() { }
}

何时不使用它

此规则不应在 ES3/5 环境中使用。

在 ES2015 (ES6) 或更高版本中,如果您不想收到有关类成员中重复名称的通知,可以安全地禁用此规则。

由 TypeScript 处理

在使用 TypeScript 时禁用此规则是安全的,因为 TypeScript 的编译器会强制执行此检查。

版本

此规则在 ESLint v1.2.0 中引入。

资源

更改语言