src/content/docs/linter/rules/no-duplicate-class-members.mdx
import { Tabs, TabItem } from '@astrojs/starlight/components';
<Tabs> <TabItem label="JavaScript (and super languages)" icon="seti:javascript"> ## Summary - Rule available since: `v1.0.0` - Diagnostic Category: [`lint/suspicious/noDuplicateClassMembers`](/reference/diagnostics#diagnostic-category) - 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**](/reference/diagnostics#error). - Sources: - Same as [`no-dupe-class-members`](https://eslint.org/docs/latest/rules/no-dupe-class-members) - Same as [`@typescript-eslint/no-dupe-class-members`](https://typescript-eslint.io/rules/no-dupe-class-members){
"linter": {
"rules": {
"suspicious": {
"noDuplicateClassMembers": "error"
}
}
}
}
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.
class Foo {
bar() { }
bar() { }
}
class Foo {
bar() { }
get bar() { }
}
class Foo {
bar;
bar() { }
}
class Foo {
static bar() { }
static bar() { }
}
class Foo {
bar() { }
qux() { }
}
class Foo {
set bar(value) { }
get bar() { }
}
class Foo {
bar;
qux;
}
class Foo {
bar;
qux() { }
}
class Foo {
static bar() { }
bar() { }
}