src/content/docs/linter/rules/no-unused-private-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.3.3` - Diagnostic Category: [`lint/correctness/noUnusedPrivateClassMembers`](/reference/diagnostics#diagnostic-category) - This rule is **recommended**, meaning it is enabled by default. - This rule has an [**unsafe**](/linter/#unsafe-fixes) fix. - The default severity of this rule is [**warning**](/reference/diagnostics#warning). - Sources: - Same as [`no-unused-private-class-members`](https://eslint.org/docs/latest/rules/no-unused-private-class-members){
"linter": {
"rules": {
"correctness": {
"noUnusedPrivateClassMembers": "error"
}
}
}
}
Disallow unused private class members
Private class members that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such class members take up space in the code and can lead to confusion by readers.
class OnlyWrite {
#usedOnlyInWrite = 5;
method() {
this.#usedOnlyInWrite = 212;
}
}
class TsBioo {
private unusedProperty = 5;
}
class TsBioo {
private unusedMethod() {}
}
class UsedMember {
#usedMember = 42;
method() {
return this.#usedMember;
}
}
The rule currently considers that all TypeScript private members are used if it encounters a computed access.
In the following example member is not reported. It is considered as used.
class TsBioo {
private member: number;
set_with_name(name: string, value: number) {
this[name] = value;
}
}