From 8a526274567a0c364a4c91d7fbc5c7585e81445a Mon Sep 17 00:00:00 2001 From: Airat Aminev Date: Thu, 23 May 2019 13:49:36 -0700 Subject: [PATCH] fix(typescript): erase default export if exporting a TS type --- .../babel-plugin-transform-typescript/src/index.js | 10 ++++++++++ .../test/fixtures/declarations/erased/input.mjs | 1 + 2 files changed, 11 insertions(+) diff --git a/packages/babel-plugin-transform-typescript/src/index.js b/packages/babel-plugin-transform-typescript/src/index.js index b2a8c0d2afce..4f1a0a1fa78b 100644 --- a/packages/babel-plugin-transform-typescript/src/index.js +++ b/packages/babel-plugin-transform-typescript/src/index.js @@ -156,6 +156,16 @@ export default declare((api, { jsxPragma = "React" }) => { } }, + ExportDefaultDeclaration(path, { exportableTSNames }) { + // remove whole declaration if it's exporting a TS type + if ( + t.isIdentifier(path.node.declaration) && + exportableTSNames.has(path.node.declaration.name) + ) { + path.remove(); + } + }, + TSDeclareFunction(path) { path.remove(); }, diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/declarations/erased/input.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/declarations/erased/input.mjs index b54970d889a5..e83413bd77d1 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/declarations/erased/input.mjs +++ b/packages/babel-plugin-transform-typescript/test/fixtures/declarations/erased/input.mjs @@ -42,6 +42,7 @@ function foo() {} export { II3 as default, AA2 as A, BB2 as BB3, foo }; // only BB2 and foo // export an interface before declaration +export default Bar; export { Bar } // everything removed export { Bar as Bar2, C2 as C4 } // only C4 interface Bar {}