From 3764248084455409f085c5bc4706079405cef618 Mon Sep 17 00:00:00 2001 From: Alexander T Date: Thu, 20 Aug 2020 22:24:57 +0300 Subject: [PATCH] fix(eslint-plugin): [explicit-module-boundary-types] ignore abstract setters (#2410) --- .../src/rules/explicit-module-boundary-types.ts | 5 ++++- .../tests/rules/explicit-module-boundary-types.test.ts | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/eslint-plugin/src/rules/explicit-module-boundary-types.ts b/packages/eslint-plugin/src/rules/explicit-module-boundary-types.ts index 49fdfc1d5a0..fc2dd4e63c4 100644 --- a/packages/eslint-plugin/src/rules/explicit-module-boundary-types.ts +++ b/packages/eslint-plugin/src/rules/explicit-module-boundary-types.ts @@ -427,7 +427,10 @@ export default util.createRule({ const isConstructor = node.parent?.type === AST_NODE_TYPES.MethodDefinition && node.parent.kind === 'constructor'; - if (!isConstructor && !node.returnType) { + const isAbstractSetAccessor = + node.parent?.type === AST_NODE_TYPES.TSAbstractMethodDefinition && + node.parent.kind === 'set'; + if (!isConstructor && !isAbstractSetAccessor && !node.returnType) { context.report({ node, messageId: 'missingReturnType', diff --git a/packages/eslint-plugin/tests/rules/explicit-module-boundary-types.test.ts b/packages/eslint-plugin/tests/rules/explicit-module-boundary-types.test.ts index 114b26aed0f..32ae93592b4 100644 --- a/packages/eslint-plugin/tests/rules/explicit-module-boundary-types.test.ts +++ b/packages/eslint-plugin/tests/rules/explicit-module-boundary-types.test.ts @@ -646,6 +646,11 @@ type Buz = () => (n: number) => string; export const buz: Buz = () => n => String(n); `, + ` +export abstract class Foo { + abstract set value(element: T); +} + `, ], invalid: [ {