From 829a2f728f876d356908e2338c2d6620e58f9943 Mon Sep 17 00:00:00 2001 From: G r e y Date: Wed, 8 Apr 2020 11:08:51 -0500 Subject: [PATCH] fix(eslint-plugin): no-empty-interface autofix (#1865) Resolves: #1864 --- .../src/rules/no-empty-interface.ts | 17 +++++++++++------ .../tests/rules/no-empty-interface.test.ts | 15 +++++++++++++++ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/packages/eslint-plugin/src/rules/no-empty-interface.ts b/packages/eslint-plugin/src/rules/no-empty-interface.ts index 039415ad68f..2e9e61c1e0e 100644 --- a/packages/eslint-plugin/src/rules/no-empty-interface.ts +++ b/packages/eslint-plugin/src/rules/no-empty-interface.ts @@ -61,13 +61,18 @@ export default util.createRule({ context.report({ node: node.id, messageId: 'noEmptyWithSuper', - fix: fixer => - fixer.replaceText( + fix: fixer => { + let typeParam = ''; + if (node.typeParameters) { + typeParam = sourceCode.getText(node.typeParameters); + } + return fixer.replaceText( node, - `type ${sourceCode.getText(node.id)} = ${sourceCode.getText( - extend[0], - )}`, - ), + `type ${sourceCode.getText( + node.id, + )}${typeParam} = ${sourceCode.getText(extend[0])}`, + ); + }, }); } } diff --git a/packages/eslint-plugin/tests/rules/no-empty-interface.test.ts b/packages/eslint-plugin/tests/rules/no-empty-interface.test.ts index 1a69e06f140..840e729f183 100644 --- a/packages/eslint-plugin/tests/rules/no-empty-interface.test.ts +++ b/packages/eslint-plugin/tests/rules/no-empty-interface.test.ts @@ -133,5 +133,20 @@ type Foo = R }, ], }, + { + code: ` +interface Foo extends Bar {} + `, + output: noFormat` +type Foo = Bar + `, + errors: [ + { + messageId: 'noEmptyWithSuper', + line: 2, + column: 11, + }, + ], + }, ], });