版本

no-dupe-class-members

禁止重复的类成员

推荐

在一个配置文件中使用 @eslint/js 中的 recommended 配置 启用此规则

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

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

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

规则详情

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

示例

此规则的错误代码示例

在 Playground 中打开
/*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() { }
}

此规则的正确代码示例

在 Playground 中打开
/*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 中引入。

资源

更改语言