noDuplicateClassMembers (JavaScript)
Language JavaScript (and super languages)
Summary
Section titled “Summary”- Rule available since:
v1.0.0 - Diagnostic Category:
lint/suspicious/noDuplicateClassMembers - This rule is recommended, meaning it is enabled by default.
- This rule doesn’t have a fix.
- The default severity of this rule is error.
- Sources:
- Same as
no-dupe-class-members - Same as
@typescript-eslint/no-dupe-class-members
- Same as
How to configure
Section titled “How to configure”{ "linter": { "rules": { "suspicious": { "noDuplicateClassMembers": "error" } } }}Description
Section titled “Description”Disallow duplicate class members.
If there are declarations of the same name among class members, the last declaration overwrites other declarations silently. It can cause unexpected behaviours.
Examples
Section titled “Examples”Invalid
Section titled “Invalid”class Foo { bar() { } bar() { }}code-block.js:3:3 lint/suspicious/noDuplicateClassMembers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Duplicate class member name bar.
1 │ class Foo {
2 │ bar() { }
> 3 │ bar() { }
│ ^^^^^^^^^
4 │ }
5 │
ℹ The last declaration silently overwrites the earlier ones, which can cause unexpected behavior.
ℹ Remove the duplicate member, or rename it if you meant a different member.
class Foo { bar() { } get bar() { }}code-block.js:3:3 lint/suspicious/noDuplicateClassMembers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Duplicate class member name bar.
1 │ class Foo {
2 │ bar() { }
> 3 │ get bar() { }
│ ^^^^^^^^^^^^^
4 │ }
5 │
ℹ The last declaration silently overwrites the earlier ones, which can cause unexpected behavior.
ℹ Remove the duplicate member, or rename it if you meant a different member.
class Foo { bar; bar() { }}code-block.js:3:3 lint/suspicious/noDuplicateClassMembers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Duplicate class member name bar.
1 │ class Foo {
2 │ bar;
> 3 │ bar() { }
│ ^^^^^^^^^
4 │ }
5 │
ℹ The last declaration silently overwrites the earlier ones, which can cause unexpected behavior.
ℹ Remove the duplicate member, or rename it if you meant a different member.
class Foo { static bar() { } static bar() { }}code-block.js:3:3 lint/suspicious/noDuplicateClassMembers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Duplicate class member name bar.
1 │ class Foo {
2 │ static bar() { }
> 3 │ static bar() { }
│ ^^^^^^^^^^^^^^^^
4 │ }
5 │
ℹ The last declaration silently overwrites the earlier ones, which can cause unexpected behavior.
ℹ Remove the duplicate member, or rename it if you meant a different member.
class Foo { bar() { } qux() { }}class Foo { set bar(value) { } get bar() { }}class Foo { bar; qux;}class Foo { bar; qux() { }}class Foo { static bar() { } bar() { }}Related links
Section titled “Related links”Copyright (c) 2023-present Biome Developers and Contributors.