diff --git a/packages/babel-helper-module-transforms/src/rewrite-live-references.ts b/packages/babel-helper-module-transforms/src/rewrite-live-references.ts index 1fe85f9ab317..7563fc8efffa 100644 --- a/packages/babel-helper-module-transforms/src/rewrite-live-references.ts +++ b/packages/babel-helper-module-transforms/src/rewrite-live-references.ts @@ -49,6 +49,7 @@ function isInType(path) { switch (path.parent.type) { case "TSTypeAnnotation": case "TSTypeAliasDeclaration": + case "TSTypeReference": case "TypeAnnotation": case "TypeAlias": return true; diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-flow-plugin-type-cast/input.js b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-flow-plugin-type-cast/input.js new file mode 100644 index 000000000000..8bc03f2248ae --- /dev/null +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-flow-plugin-type-cast/input.js @@ -0,0 +1,3 @@ +import { A } from "x"; + +var x = ({} : A.b[0]); diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-flow-plugin-type-cast/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-flow-plugin-type-cast/options.json new file mode 100644 index 000000000000..5488d6aa7d65 --- /dev/null +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-flow-plugin-type-cast/options.json @@ -0,0 +1,6 @@ +{ + "externalHelpers": true, + "sourceType": "module", + "plugins": ["transform-modules-commonjs", "syntax-flow"], + "throws": "Cannot transform the imported A binding since it's used in a type annotation. Please strip type annotations using @babel/preset-typescript or @babel/preset-flow." +} diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-ts-plugin-type-assertion-legacy/input.ts b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-ts-plugin-type-assertion-legacy/input.ts new file mode 100644 index 000000000000..6bf00bc3a8b0 --- /dev/null +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-ts-plugin-type-assertion-legacy/input.ts @@ -0,0 +1,3 @@ +import { A } from "x"; + +var x = {} as A.b[0]; diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-ts-plugin-type-assertion-legacy/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-ts-plugin-type-assertion-legacy/options.json new file mode 100644 index 000000000000..0b34b9f7a291 --- /dev/null +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-ts-plugin-type-assertion-legacy/options.json @@ -0,0 +1,6 @@ +{ + "externalHelpers": true, + "sourceType": "module", + "plugins": ["transform-modules-commonjs", "syntax-typescript"], + "throws": "Cannot transform the imported A binding since it's used in a type annotation. Please strip type annotations using @babel/preset-typescript or @babel/preset-flow." +} diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-ts-plugin-type-assertion/input.ts b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-ts-plugin-type-assertion/input.ts new file mode 100644 index 000000000000..f046a912385b --- /dev/null +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-ts-plugin-type-assertion/input.ts @@ -0,0 +1,3 @@ +import { A } from "x"; + +var x = {}; diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-ts-plugin-type-assertion/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-ts-plugin-type-assertion/options.json new file mode 100644 index 000000000000..0b34b9f7a291 --- /dev/null +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/integration/missing-ts-plugin-type-assertion/options.json @@ -0,0 +1,6 @@ +{ + "externalHelpers": true, + "sourceType": "module", + "plugins": ["transform-modules-commonjs", "syntax-typescript"], + "throws": "Cannot transform the imported A binding since it's used in a type annotation. Please strip type annotations using @babel/preset-typescript or @babel/preset-flow." +}