Skip to content

Commit 592a4b9

Browse files
committed
Emit "declare" for temp default var name only if declaration file emit context allows
Fixes microsoft#7807
1 parent 75ef677 commit 592a4b9

2 files changed

Lines changed: 5 additions & 18 deletions

File tree

src/compiler/declarationEmitter.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,10 @@ namespace ts {
530530
else {
531531
// Expression
532532
const tempVarName = getExportDefaultTempVariableName();
533-
write("declare var ");
533+
if (!noDeclare) {
534+
write("declare ");
535+
}
536+
write("var ");
534537
write(tempVarName);
535538
write(": ");
536539
writer.getSymbolAccessibilityDiagnostic = getDefaultExportAccessibilityDiagnostic;

tests/baselines/reference/declarationEmitDefaultExportWithTempVarNameWithBundling.js

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,6 @@ System.register("pi", [], function(exports_1, context_1) {
1717

1818
//// [app.d.ts]
1919
declare module "pi" {
20-
declare var _default: number;
20+
var _default: number;
2121
export default _default;
2222
}
23-
24-
25-
//// [DtsFileErrors]
26-
27-
28-
app.d.ts(2,5): error TS1038: A 'declare' modifier cannot be used in an already ambient context.
29-
30-
31-
==== app.d.ts (1 errors) ====
32-
declare module "pi" {
33-
declare var _default: number;
34-
~~~~~~~
35-
!!! error TS1038: A 'declare' modifier cannot be used in an already ambient context.
36-
export default _default;
37-
}
38-

0 commit comments

Comments
 (0)