diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index afd9b6d5b34..2ae4682b919 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -26356,7 +26356,7 @@ namespace ts { function checkExportSpecifier(node: ExportSpecifier) { checkAliasSymbol(node); - if (compilerOptions.declaration) { + if (getEmitDeclarations(compilerOptions)) { collectLinkedAliases(node.propertyName || node.name, /*setVisibility*/ true); } if (!node.parent.parent.moduleSpecifier) { @@ -26397,7 +26397,7 @@ namespace ts { if (node.expression.kind === SyntaxKind.Identifier) { markExportAsReferenced(node); - if (compilerOptions.declaration) { + if (getEmitDeclarations(compilerOptions)) { collectLinkedAliases(node.expression as Identifier, /*setVisibility*/ true); } } diff --git a/tests/baselines/reference/declarationEmitWithComposite.js b/tests/baselines/reference/declarationEmitWithComposite.js new file mode 100644 index 00000000000..3ccdf5c1ea1 --- /dev/null +++ b/tests/baselines/reference/declarationEmitWithComposite.js @@ -0,0 +1,17 @@ +//// [test.ts] +interface Foo { + x: number; +} +export default Foo; + + +//// [/foo/out/test.js] +"use strict"; +exports.__esModule = true; + + +//// [/foo/out/test.d.ts] +interface Foo { + x: number; +} +export default Foo; diff --git a/tests/baselines/reference/declarationEmitWithComposite.symbols b/tests/baselines/reference/declarationEmitWithComposite.symbols new file mode 100644 index 00000000000..74f9fba394b --- /dev/null +++ b/tests/baselines/reference/declarationEmitWithComposite.symbols @@ -0,0 +1,10 @@ +=== /foo/test.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(test.ts, 0, 0)) + + x: number; +>x : Symbol(Foo.x, Decl(test.ts, 0, 15)) +} +export default Foo; +>Foo : Symbol(Foo, Decl(test.ts, 0, 0)) + diff --git a/tests/baselines/reference/declarationEmitWithComposite.types b/tests/baselines/reference/declarationEmitWithComposite.types new file mode 100644 index 00000000000..489a84bb9f1 --- /dev/null +++ b/tests/baselines/reference/declarationEmitWithComposite.types @@ -0,0 +1,8 @@ +=== /foo/test.ts === +interface Foo { + x: number; +>x : number +} +export default Foo; +>Foo : Foo + diff --git a/tests/cases/compiler/declarationEmitWithComposite.ts b/tests/cases/compiler/declarationEmitWithComposite.ts new file mode 100644 index 00000000000..9d039ce2271 --- /dev/null +++ b/tests/cases/compiler/declarationEmitWithComposite.ts @@ -0,0 +1,13 @@ +// @composite: true +// @fullEmitPaths: true + +// @filename: /foo/tsconfig.json +{ + "compilerOptions": { "composite": true, "outDir": "out" } +} + +// @filename: /foo/test.ts +interface Foo { + x: number; +} +export default Foo;