diff --git a/src/compiler/transformers/ts.ts b/src/compiler/transformers/ts.ts index 555855b5e23..4dca267955c 100644 --- a/src/compiler/transformers/ts.ts +++ b/src/compiler/transformers/ts.ts @@ -2922,7 +2922,7 @@ namespace ts { function visitExportDeclaration(node: ExportDeclaration): VisitResult { if (!node.exportClause) { // Elide a star export if the module it references does not export a value. - return resolver.moduleExportsSomeValue(node.moduleSpecifier) ? node : undefined; + return compilerOptions.isolatedModules || resolver.moduleExportsSomeValue(node.moduleSpecifier) ? node : undefined; } if (!resolver.isValueAliasDeclaration(node)) { diff --git a/tests/baselines/reference/isolatedModulesDontElideReExportStar.js b/tests/baselines/reference/isolatedModulesDontElideReExportStar.js new file mode 100644 index 00000000000..4d546135f74 --- /dev/null +++ b/tests/baselines/reference/isolatedModulesDontElideReExportStar.js @@ -0,0 +1,12 @@ +//// [tests/cases/compiler/isolatedModulesDontElideReExportStar.ts] //// + +//// [a.ts] +export type T = number; + +//// [b.ts] +export * from "./a"; + + +//// [a.js] +//// [b.js] +export * from "./a"; diff --git a/tests/baselines/reference/isolatedModulesDontElideReExportStar.symbols b/tests/baselines/reference/isolatedModulesDontElideReExportStar.symbols new file mode 100644 index 00000000000..38ab78bf498 --- /dev/null +++ b/tests/baselines/reference/isolatedModulesDontElideReExportStar.symbols @@ -0,0 +1,8 @@ +=== /a.ts === +export type T = number; +>T : Symbol(T, Decl(a.ts, 0, 0)) + +=== /b.ts === +export * from "./a"; +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/isolatedModulesDontElideReExportStar.types b/tests/baselines/reference/isolatedModulesDontElideReExportStar.types new file mode 100644 index 00000000000..4f68c5ded89 --- /dev/null +++ b/tests/baselines/reference/isolatedModulesDontElideReExportStar.types @@ -0,0 +1,8 @@ +=== /a.ts === +export type T = number; +>T : number + +=== /b.ts === +export * from "./a"; +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/cases/compiler/isolatedModulesDontElideReExportStar.ts b/tests/cases/compiler/isolatedModulesDontElideReExportStar.ts new file mode 100644 index 00000000000..37a851a6292 --- /dev/null +++ b/tests/cases/compiler/isolatedModulesDontElideReExportStar.ts @@ -0,0 +1,8 @@ +// @isolatedModules: true +// @target: es6 + +// @filename: /a.ts +export type T = number; + +// @filename: /b.ts +export * from "./a";