diff --git a/packages/babel-plugin-transform-typescript/src/index.ts b/packages/babel-plugin-transform-typescript/src/index.ts index 3ce2557e4d..6daeb9fa26 100644 --- a/packages/babel-plugin-transform-typescript/src/index.ts +++ b/packages/babel-plugin-transform-typescript/src/index.ts @@ -291,7 +291,7 @@ export default declare((api, opts) => { } } else if ( stmt.isTSTypeAliasDeclaration() || - stmt.isTSDeclareFunction() || + (stmt.isTSDeclareFunction() && stmt.get("id").isIdentifier()) || stmt.isTSInterfaceDeclaration() || stmt.isClassDeclaration({ declare: true }) || stmt.isTSEnumDeclaration({ declare: true }) || diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/exports/default-function/input.ts b/packages/babel-plugin-transform-typescript/test/fixtures/exports/default-function/input.ts new file mode 100644 index 0000000000..0fd352cd26 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/exports/default-function/input.ts @@ -0,0 +1,3 @@ +export default function(choiceField: any, selectedIndex: number): void; +export default function(choiceField: any, selectedValue: string): void; +export default function(choiceField: any, selection: number | string) {} \ No newline at end of file diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/exports/default-function/output.mjs b/packages/babel-plugin-transform-typescript/test/fixtures/exports/default-function/output.mjs new file mode 100644 index 0000000000..fa096475e5 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/exports/default-function/output.mjs @@ -0,0 +1 @@ +export default function (choiceField, selection) {}