# no-dupe-class-members

禁止重复的类成员

配置文件中的 "extends": "eslint:recommended" 属性启用了该规则

如果类成员中有同名的声明,最后一个声明会默默地覆盖其他声明。它可能会导致意外行为。

/*eslint-env es6*/

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

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

# 规则详情

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

# 示例

此规则的错误代码示例:

/*eslint no-dupe-class-members: "error"*/

class Foo {
  bar() { }
  bar() { }
}

class Foo {
  bar() { }
  get bar() { }
}

class Foo {
  bar;
  bar;
}

class Foo {
  bar;
  bar() { }
}

class Foo {
  static bar() { }
  static bar() { }
}

此规则的正确代码示例:

/*eslint no-dupe-class-members: "error"*/

class Foo {
  bar() { }
  qux() { }
}

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

class Foo {
  bar;
  qux;
}

class Foo {
  bar;
  qux() { }
}

class Foo {
  static bar() { }
  bar() { }
}

# 何时不使用

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

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

使用 TypeScript 时禁用此规则也是安全的,因为 TypeScript 的编译器已经检查重复的函数实现。

Last Updated: 5/13/2023, 8:55:38 PM