diff --git a/packages/eslint-plugin/src/rules/member-ordering.ts b/packages/eslint-plugin/src/rules/member-ordering.ts index 29b748e88cf..f7ad60c58fe 100644 --- a/packages/eslint-plugin/src/rules/member-ordering.ts +++ b/packages/eslint-plugin/src/rules/member-ordering.ts @@ -800,6 +800,10 @@ export default util.createRule({ previousName: string, order: AlphabeticalOrder, ): boolean { + if (name === previousName) { + return false; + } + switch (order) { case 'alphabetically': return name < previousName; diff --git a/packages/eslint-plugin/tests/rules/member-ordering.test.ts b/packages/eslint-plugin/tests/rules/member-ordering.test.ts index 9e8dda8b778..b947d8a5a1e 100644 --- a/packages/eslint-plugin/tests/rules/member-ordering.test.ts +++ b/packages/eslint-plugin/tests/rules/member-ordering.test.ts @@ -2008,6 +2008,53 @@ interface Foo { }, ], }, + // https://github.com/typescript-eslint/typescript-eslint/issues/6812 + { + code: ` +class Foo { + #bar: string; + + get bar(): string { + return this.#bar; + } + + set bar(value: string) { + this.#bar = value; + } +} + `, + options: [ + { + default: { + memberTypes: [['get', 'set']], + order: 'alphabetically', + }, + }, + ], + }, + { + code: ` +class Foo { + #bar: string; + + get bar(): string { + return this.#bar; + } + + set bar(value: string) { + this.#bar = value; + } +} + `, + options: [ + { + default: { + memberTypes: [['get', 'set']], + order: 'natural', + }, + }, + ], + }, ], invalid: [ {