# 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 的编译器已经检查重复的函数实现。