diff --git a/packages/eslint-plugin/src/rules/method-signature-style.ts b/packages/eslint-plugin/src/rules/method-signature-style.ts index d9dfbdac4bd..39ed66cd072 100644 --- a/packages/eslint-plugin/src/rules/method-signature-style.ts +++ b/packages/eslint-plugin/src/rules/method-signature-style.ts @@ -115,6 +115,10 @@ export default util.createRule({ return { ...(mode === 'property' && { TSMethodSignature(methodNode): void { + if (methodNode.kind !== 'method') { + return; + } + const parent = methodNode.parent; const members = parent?.type === AST_NODE_TYPES.TSInterfaceBody diff --git a/packages/eslint-plugin/tests/rules/method-signature-style.test.ts b/packages/eslint-plugin/tests/rules/method-signature-style.test.ts index e82ee2e750b..065d15c6180 100644 --- a/packages/eslint-plugin/tests/rules/method-signature-style.test.ts +++ b/packages/eslint-plugin/tests/rules/method-signature-style.test.ts @@ -30,12 +30,24 @@ interface Test { ` interface Test { 'f!': (/* b */ x: any /* c */) => void; +} + `, + ` +interface Test { + get f(): number; +} + `, + ` +interface Test { + set f(value: number): void; } `, 'type Test = { readonly f: (a: string) => number };', "type Test = { ['f']?: (a: boolean) => void };", 'type Test = { readonly f?: (a?: T) => T };', "type Test = { readonly ['f']?: (a: T, b: T) => T };", + 'type Test = { get f(): number };', + 'type Test = { set f(value: number): void };', ...batchedSingleLineTests({ options: ['method'], code: noFormat` @@ -44,10 +56,14 @@ interface Test { interface Test { f(a: T): T } interface Test { ['f'](a: T, b: T): T } interface Test { 'f!'(/* b */ x: any /* c */): void } + interface Test { get f(): number } + interface Test { set f(value: number): void } type Test = { readonly f(a: string): number } type Test = { ['f']?(a: boolean): void } type Test = { readonly f?(a?: T): T } type Test = { readonly ['f']?(a: T, b: T): T } + type Test = { get f(): number } + type Test = { set f(value: number): void } `, }), ],