Closed as not planned
Description
Before You File a Proposal Please Confirm You Have Done The Following...
- I have searched for related issues and found none that match my proposal.
- I have searched the current rule list and found no rules that match my proposal.
- I have read the FAQ and my problem is not listed.
My proposal is suitable for this project
- My proposal specifically checks TypeScript syntax, or it proposes a check that requires type information to be accurate.
- My proposal is not a "formatting rule"; meaning it does not just enforce how code is formatted (whitespace, brace placement, etc).
- I believe my proposal would be useful to the broader TypeScript community (meaning it is not a niche proposal).
Description
I would love a rule that forces users to use private class members over using the private
keyword.
Private class members have been added in ES 2022 and are supported in most major browsers as well as Node 14 and up. Time for libraries to migrate.
Fail Cases
class Foo {
// Error
private bar = 0;
// Error
constructor(private baz: number){}
// Error
private toString(): string {
return '';
}
}
Pass Cases
class Foo {
#bar = 0;
#baz: number;
constructor(baz: number) {
this.#baz = baz;
}
// Error
#toString(): string {
return '';
}
}
Additional Info
This might be auto-fixable, that would be sweet! But it might make it very difficult.
Metadata
Metadata
Assignees
Labels
This issue or pull request already existsThis issue or pull request already existsIssues related to @typescript-eslint/eslint-pluginIssues related to @typescript-eslint/eslint-plugin