From 55e788c818d022f6b4cd9e00ef69882d78daaa21 Mon Sep 17 00:00:00 2001 From: Brad Zacher Date: Wed, 24 Jul 2019 17:34:25 -0700 Subject: [PATCH] fix(eslint-plugin): [no-useless-constructor] handle bodyless constructor (#685) --- packages/eslint-plugin/src/rules/no-useless-constructor.ts | 1 + .../eslint-plugin/tests/rules/no-useless-constructor.test.ts | 2 ++ 2 files changed, 3 insertions(+) diff --git a/packages/eslint-plugin/src/rules/no-useless-constructor.ts b/packages/eslint-plugin/src/rules/no-useless-constructor.ts index e6b48a055ed..6410fa5fa43 100644 --- a/packages/eslint-plugin/src/rules/no-useless-constructor.ts +++ b/packages/eslint-plugin/src/rules/no-useless-constructor.ts @@ -63,6 +63,7 @@ export default util.createRule({ if ( node.value && node.value.type === AST_NODE_TYPES.FunctionExpression && + node.value.body && checkAccessibility(node) && checkParams(node) ) { diff --git a/packages/eslint-plugin/tests/rules/no-useless-constructor.test.ts b/packages/eslint-plugin/tests/rules/no-useless-constructor.test.ts index ab84faa5c66..18446ad6470 100644 --- a/packages/eslint-plugin/tests/rules/no-useless-constructor.test.ts +++ b/packages/eslint-plugin/tests/rules/no-useless-constructor.test.ts @@ -50,6 +50,8 @@ ruleTester.run('no-useless-constructor', rule, { 'class A extends B { private constructor(foo, bar) { super(bar); } }', 'class A extends B { public constructor(foo){ super(foo); } }', 'class A extends B { public constructor(foo){} }', + // type definition / overload + 'class A { constructor(foo); }', ], invalid: [ {