diff --git a/packages/babel-generator/src/generators/typescript.ts b/packages/babel-generator/src/generators/typescript.ts index 14375b0beac5..0945de55ad5f 100644 --- a/packages/babel-generator/src/generators/typescript.ts +++ b/packages/babel-generator/src/generators/typescript.ts @@ -435,7 +435,7 @@ export function TSInterfaceDeclaration( this.space(); this.print(id, node); this.print(typeParameters, node); - if (extendz) { + if (extendz?.length) { this.space(); this.word("extends"); this.space(); diff --git a/packages/babel-generator/test/index.js b/packages/babel-generator/test/index.js index 7dcf37f6112f..8c597b818db7 100644 --- a/packages/babel-generator/test/index.js +++ b/packages/babel-generator/test/index.js @@ -735,6 +735,19 @@ describe("programmatic generation", function () { } }); }); + + describe("typescript interface declaration", () => { + it("empty extends array", () => { + const tsInterfaceDeclaration = t.tsInterfaceDeclaration( + t.identifier("A"), + undefined, + [], + t.tsInterfaceBody([]), + ); + const output = generate(tsInterfaceDeclaration).code; + expect(output).toBe("interface A {}"); + }); + }); }); describe("CodeGenerator", function () {