Skip to content

Commit 27ddfbb

Browse files
committed
Don't complain about modules and outFile options when
`emitDeclarationOnly` is set. Fixes microsoft#27117.
1 parent 0a97663 commit 27ddfbb

8 files changed

+77
-1
lines changed

src/compiler/program.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2577,7 +2577,7 @@ namespace ts {
25772577
}
25782578

25792579
// Cannot specify module gen that isn't amd or system with --out
2580-
if (outFile) {
2580+
if (outFile && !options.emitDeclarationOnly) {
25812581
if (options.module && !(options.module === ModuleKind.AMD || options.module === ModuleKind.System)) {
25822582
createDiagnosticForOptionName(Diagnostics.Only_amd_and_system_modules_are_supported_alongside_0, options.out ? "out" : "outFile", "module");
25832583
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
=== tests/cases/compiler/ref/a.ts ===
2+
export class A { }
3+
>A : Symbol(A, Decl(a.ts, 0, 0))
4+
5+
=== tests/cases/compiler/b.ts ===
6+
import {A} from "./ref/a";
7+
>A : Symbol(A, Decl(b.ts, 0, 8))
8+
9+
export class B extends A { }
10+
>B : Symbol(B, Decl(b.ts, 0, 26))
11+
>A : Symbol(A, Decl(b.ts, 0, 8))
12+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
=== tests/cases/compiler/ref/a.ts ===
2+
export class A { }
3+
>A : A
4+
5+
=== tests/cases/compiler/b.ts ===
6+
import {A} from "./ref/a";
7+
>A : typeof A
8+
9+
export class B extends A { }
10+
>B : B
11+
>A : A
12+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//// [tests/cases/compiler/outModuleConcatUnspecifiedModuleKindDeclarationOnly.ts] ////
2+
3+
//// [a.ts]
4+
export class A { } // module
5+
6+
//// [b.ts]
7+
var x = 0; // global
8+
9+
10+
11+
//// [out.d.ts]
12+
declare var x: number;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
=== tests/cases/compiler/a.ts ===
2+
export class A { } // module
3+
>A : Symbol(A, Decl(a.ts, 0, 0))
4+
5+
=== tests/cases/compiler/b.ts ===
6+
var x = 0; // global
7+
>x : Symbol(x, Decl(b.ts, 0, 3))
8+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
=== tests/cases/compiler/a.ts ===
2+
export class A { } // module
3+
>A : A
4+
5+
=== tests/cases/compiler/b.ts ===
6+
var x = 0; // global
7+
>x : number
8+
>0 : 0
9+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// @target: ES5
2+
// @sourcemap: true
3+
// @declaration: true
4+
// @emitDeclarationOnly: true
5+
// @module: commonjs
6+
// @outFile: all.js
7+
8+
// @Filename: ref/a.ts
9+
export class A { }
10+
11+
// @Filename: b.ts
12+
import {A} from "./ref/a";
13+
export class B extends A { }
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// @target: ES5
2+
// @outFile: out.js
3+
// @declaration: true
4+
// @emitDeclarationOnly: true
5+
6+
// @Filename: a.ts
7+
export class A { } // module
8+
9+
// @Filename: b.ts
10+
var x = 0; // global

0 commit comments

Comments
 (0)