diff --git a/packages/babel-plugin-transform-parameters/src/params.js b/packages/babel-plugin-transform-parameters/src/params.js index 0a85bfbd884c..2f2a8da1450c 100644 --- a/packages/babel-plugin-transform-parameters/src/params.js +++ b/packages/babel-plugin-transform-parameters/src/params.js @@ -36,6 +36,9 @@ const iifeVisitor = { path.stop(); } }, + // type annotations don't use or introduce "real" bindings + "TypeAnnotation|TSTypeAnnotation|TypeParameterDeclaration|TSTypeParameterDeclaration": path => + path.skip(), }; export default function convertFunctionParams(path, loose) { diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/input.js b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/input.js new file mode 100644 index 000000000000..953d0473e286 --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/input.js @@ -0,0 +1,7 @@ +function a(b: (c) => void = {}) { + let c; +} + +function d(e = () => {}) { + let T; +} diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/options.json b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/options.json new file mode 100644 index 000000000000..8fe7e8dceccb --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + "transform-parameters", + "syntax-flow" + ] +} diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/output.js b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/output.js new file mode 100644 index 000000000000..d4d757d31d0d --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-flow/output.js @@ -0,0 +1,9 @@ +function a() { + let b: (c) => void = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + let c; +} + +function d() { + let e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : () => {}; + let T; +} diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/input.js b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/input.js new file mode 100644 index 000000000000..953d0473e286 --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/input.js @@ -0,0 +1,7 @@ +function a(b: (c) => void = {}) { + let c; +} + +function d(e = () => {}) { + let T; +} diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/options.json b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/options.json new file mode 100644 index 000000000000..abf00ef61215 --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/options.json @@ -0,0 +1,6 @@ +{ + "plugins": [ + "transform-parameters", + "syntax-typescript" + ] +} diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/output.js b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/output.js new file mode 100644 index 000000000000..d4d757d31d0d --- /dev/null +++ b/packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/output.js @@ -0,0 +1,9 @@ +function a() { + let b: (c) => void = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + let c; +} + +function d() { + let e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : () => {}; + let T; +}