mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 16:38:05 -06:00
Fix #2929: relax the check for export= in ES6 if it is resulting from an ambient declaration
This commit is contained in:
parent
2349a27f92
commit
992bbff5b1
@ -10689,7 +10689,7 @@ module ts {
|
||||
}
|
||||
checkExternalModuleExports(container);
|
||||
|
||||
if (node.isExportEquals) {
|
||||
if (node.isExportEquals && !isInAmbientContext(node)) {
|
||||
if (languageVersion >= ScriptTarget.ES6) {
|
||||
// export assignment is deprecated in es6 or above
|
||||
grammarErrorOnNode(node, Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_export_default_instead);
|
||||
|
||||
13
tests/baselines/reference/es6ExportAssignment2.errors.txt
Normal file
13
tests/baselines/reference/es6ExportAssignment2.errors.txt
Normal file
@ -0,0 +1,13 @@
|
||||
tests/cases/compiler/a.ts(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'export default' instead.
|
||||
|
||||
|
||||
==== tests/cases/compiler/a.ts (1 errors) ====
|
||||
|
||||
var a = 10;
|
||||
export = a; // Error: export = not allowed in ES6
|
||||
~~~~~~~~~~~
|
||||
!!! error TS1203: Export assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'export default' instead.
|
||||
|
||||
==== tests/cases/compiler/b.ts (0 errors) ====
|
||||
import * as a from "a";
|
||||
|
||||
14
tests/baselines/reference/es6ExportAssignment2.js
Normal file
14
tests/baselines/reference/es6ExportAssignment2.js
Normal file
@ -0,0 +1,14 @@
|
||||
//// [tests/cases/compiler/es6ExportAssignment2.ts] ////
|
||||
|
||||
//// [a.ts]
|
||||
|
||||
var a = 10;
|
||||
export = a; // Error: export = not allowed in ES6
|
||||
|
||||
//// [b.ts]
|
||||
import * as a from "a";
|
||||
|
||||
|
||||
//// [a.js]
|
||||
var a = 10;
|
||||
//// [b.js]
|
||||
12
tests/baselines/reference/es6ExportAssignment3.js
Normal file
12
tests/baselines/reference/es6ExportAssignment3.js
Normal file
@ -0,0 +1,12 @@
|
||||
//// [tests/cases/compiler/es6ExportAssignment3.ts] ////
|
||||
|
||||
//// [a.d.ts]
|
||||
|
||||
declare var a: number;
|
||||
export = a; // OK, in ambient context
|
||||
|
||||
//// [b.ts]
|
||||
import * as a from "a";
|
||||
|
||||
|
||||
//// [b.js]
|
||||
12
tests/baselines/reference/es6ExportAssignment3.symbols
Normal file
12
tests/baselines/reference/es6ExportAssignment3.symbols
Normal file
@ -0,0 +1,12 @@
|
||||
=== tests/cases/compiler/a.d.ts ===
|
||||
|
||||
declare var a: number;
|
||||
>a : Symbol(a, Decl(a.d.ts, 1, 11))
|
||||
|
||||
export = a; // OK, in ambient context
|
||||
>a : Symbol(a, Decl(a.d.ts, 1, 11))
|
||||
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
import * as a from "a";
|
||||
>a : Symbol(a, Decl(b.ts, 0, 6))
|
||||
|
||||
12
tests/baselines/reference/es6ExportAssignment3.types
Normal file
12
tests/baselines/reference/es6ExportAssignment3.types
Normal file
@ -0,0 +1,12 @@
|
||||
=== tests/cases/compiler/a.d.ts ===
|
||||
|
||||
declare var a: number;
|
||||
>a : number
|
||||
|
||||
export = a; // OK, in ambient context
|
||||
>a : number
|
||||
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
import * as a from "a";
|
||||
>a : number
|
||||
|
||||
14
tests/baselines/reference/es6ExportAssignment4.js
Normal file
14
tests/baselines/reference/es6ExportAssignment4.js
Normal file
@ -0,0 +1,14 @@
|
||||
//// [tests/cases/compiler/es6ExportAssignment4.ts] ////
|
||||
|
||||
//// [modules.d.ts]
|
||||
|
||||
declare module "a" {
|
||||
var a: number;
|
||||
export = a; // OK, in ambient context
|
||||
}
|
||||
|
||||
//// [b.ts]
|
||||
import * as a from "a";
|
||||
|
||||
|
||||
//// [b.js]
|
||||
14
tests/baselines/reference/es6ExportAssignment4.symbols
Normal file
14
tests/baselines/reference/es6ExportAssignment4.symbols
Normal file
@ -0,0 +1,14 @@
|
||||
=== tests/cases/compiler/modules.d.ts ===
|
||||
|
||||
declare module "a" {
|
||||
var a: number;
|
||||
>a : Symbol(a, Decl(modules.d.ts, 2, 7))
|
||||
|
||||
export = a; // OK, in ambient context
|
||||
>a : Symbol(a, Decl(modules.d.ts, 2, 7))
|
||||
}
|
||||
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
import * as a from "a";
|
||||
>a : Symbol(a, Decl(b.ts, 0, 6))
|
||||
|
||||
14
tests/baselines/reference/es6ExportAssignment4.types
Normal file
14
tests/baselines/reference/es6ExportAssignment4.types
Normal file
@ -0,0 +1,14 @@
|
||||
=== tests/cases/compiler/modules.d.ts ===
|
||||
|
||||
declare module "a" {
|
||||
var a: number;
|
||||
>a : number
|
||||
|
||||
export = a; // OK, in ambient context
|
||||
>a : number
|
||||
}
|
||||
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
import * as a from "a";
|
||||
>a : number
|
||||
|
||||
19
tests/baselines/reference/systemExportAssignment.js
Normal file
19
tests/baselines/reference/systemExportAssignment.js
Normal file
@ -0,0 +1,19 @@
|
||||
//// [tests/cases/compiler/systemExportAssignment.ts] ////
|
||||
|
||||
//// [a.d.ts]
|
||||
|
||||
declare var a: number;
|
||||
export = a; // OK, in ambient context
|
||||
|
||||
//// [b.ts]
|
||||
import * as a from "a";
|
||||
|
||||
|
||||
//// [b.js]
|
||||
System.register([], function(exports_1) {
|
||||
return {
|
||||
setters:[],
|
||||
execute: function() {
|
||||
}
|
||||
}
|
||||
});
|
||||
12
tests/baselines/reference/systemExportAssignment.symbols
Normal file
12
tests/baselines/reference/systemExportAssignment.symbols
Normal file
@ -0,0 +1,12 @@
|
||||
=== tests/cases/compiler/a.d.ts ===
|
||||
|
||||
declare var a: number;
|
||||
>a : Symbol(a, Decl(a.d.ts, 1, 11))
|
||||
|
||||
export = a; // OK, in ambient context
|
||||
>a : Symbol(a, Decl(a.d.ts, 1, 11))
|
||||
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
import * as a from "a";
|
||||
>a : Symbol(a, Decl(b.ts, 0, 6))
|
||||
|
||||
12
tests/baselines/reference/systemExportAssignment.types
Normal file
12
tests/baselines/reference/systemExportAssignment.types
Normal file
@ -0,0 +1,12 @@
|
||||
=== tests/cases/compiler/a.d.ts ===
|
||||
|
||||
declare var a: number;
|
||||
>a : number
|
||||
|
||||
export = a; // OK, in ambient context
|
||||
>a : number
|
||||
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
import * as a from "a";
|
||||
>a : number
|
||||
|
||||
13
tests/baselines/reference/systemExportAssignment2.errors.txt
Normal file
13
tests/baselines/reference/systemExportAssignment2.errors.txt
Normal file
@ -0,0 +1,13 @@
|
||||
tests/cases/compiler/a.ts(3,1): error TS1218: Export assignment is not supported when '--module' flag is 'system'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/a.ts (1 errors) ====
|
||||
|
||||
var a = 10;
|
||||
export = a; // Error: export = not allowed in ES6
|
||||
~~~~~~~~~~~
|
||||
!!! error TS1218: Export assignment is not supported when '--module' flag is 'system'.
|
||||
|
||||
==== tests/cases/compiler/b.ts (0 errors) ====
|
||||
import * as a from "a";
|
||||
|
||||
29
tests/baselines/reference/systemExportAssignment2.js
Normal file
29
tests/baselines/reference/systemExportAssignment2.js
Normal file
@ -0,0 +1,29 @@
|
||||
//// [tests/cases/compiler/systemExportAssignment2.ts] ////
|
||||
|
||||
//// [a.ts]
|
||||
|
||||
var a = 10;
|
||||
export = a; // Error: export = not allowed in ES6
|
||||
|
||||
//// [b.ts]
|
||||
import * as a from "a";
|
||||
|
||||
|
||||
//// [a.js]
|
||||
System.register([], function(exports_1) {
|
||||
var a;
|
||||
return {
|
||||
setters:[],
|
||||
execute: function() {
|
||||
a = 10;
|
||||
}
|
||||
}
|
||||
});
|
||||
//// [b.js]
|
||||
System.register([], function(exports_1) {
|
||||
return {
|
||||
setters:[],
|
||||
execute: function() {
|
||||
}
|
||||
}
|
||||
});
|
||||
21
tests/baselines/reference/systemExportAssignment3.js
Normal file
21
tests/baselines/reference/systemExportAssignment3.js
Normal file
@ -0,0 +1,21 @@
|
||||
//// [tests/cases/compiler/systemExportAssignment3.ts] ////
|
||||
|
||||
//// [modules.d.ts]
|
||||
|
||||
declare module "a" {
|
||||
var a: number;
|
||||
export = a; // OK, in ambient context
|
||||
}
|
||||
|
||||
//// [b.ts]
|
||||
import * as a from "a";
|
||||
|
||||
|
||||
//// [b.js]
|
||||
System.register([], function(exports_1) {
|
||||
return {
|
||||
setters:[],
|
||||
execute: function() {
|
||||
}
|
||||
}
|
||||
});
|
||||
14
tests/baselines/reference/systemExportAssignment3.symbols
Normal file
14
tests/baselines/reference/systemExportAssignment3.symbols
Normal file
@ -0,0 +1,14 @@
|
||||
=== tests/cases/compiler/modules.d.ts ===
|
||||
|
||||
declare module "a" {
|
||||
var a: number;
|
||||
>a : Symbol(a, Decl(modules.d.ts, 2, 7))
|
||||
|
||||
export = a; // OK, in ambient context
|
||||
>a : Symbol(a, Decl(modules.d.ts, 2, 7))
|
||||
}
|
||||
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
import * as a from "a";
|
||||
>a : Symbol(a, Decl(b.ts, 0, 6))
|
||||
|
||||
14
tests/baselines/reference/systemExportAssignment3.types
Normal file
14
tests/baselines/reference/systemExportAssignment3.types
Normal file
@ -0,0 +1,14 @@
|
||||
=== tests/cases/compiler/modules.d.ts ===
|
||||
|
||||
declare module "a" {
|
||||
var a: number;
|
||||
>a : number
|
||||
|
||||
export = a; // OK, in ambient context
|
||||
>a : number
|
||||
}
|
||||
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
import * as a from "a";
|
||||
>a : number
|
||||
|
||||
8
tests/cases/compiler/es6ExportAssignment2.ts
Normal file
8
tests/cases/compiler/es6ExportAssignment2.ts
Normal file
@ -0,0 +1,8 @@
|
||||
// @target: es6
|
||||
|
||||
// @filename: a.ts
|
||||
var a = 10;
|
||||
export = a; // Error: export = not allowed in ES6
|
||||
|
||||
// @filename: b.ts
|
||||
import * as a from "a";
|
||||
8
tests/cases/compiler/es6ExportAssignment3.ts
Normal file
8
tests/cases/compiler/es6ExportAssignment3.ts
Normal file
@ -0,0 +1,8 @@
|
||||
// @target: es6
|
||||
|
||||
// @filename: a.d.ts
|
||||
declare var a: number;
|
||||
export = a; // OK, in ambient context
|
||||
|
||||
// @filename: b.ts
|
||||
import * as a from "a";
|
||||
10
tests/cases/compiler/es6ExportAssignment4.ts
Normal file
10
tests/cases/compiler/es6ExportAssignment4.ts
Normal file
@ -0,0 +1,10 @@
|
||||
// @target: es6
|
||||
|
||||
// @filename: modules.d.ts
|
||||
declare module "a" {
|
||||
var a: number;
|
||||
export = a; // OK, in ambient context
|
||||
}
|
||||
|
||||
// @filename: b.ts
|
||||
import * as a from "a";
|
||||
9
tests/cases/compiler/systemExportAssignment.ts
Normal file
9
tests/cases/compiler/systemExportAssignment.ts
Normal file
@ -0,0 +1,9 @@
|
||||
// @target: es5
|
||||
// @module: system
|
||||
|
||||
// @filename: a.d.ts
|
||||
declare var a: number;
|
||||
export = a; // OK, in ambient context
|
||||
|
||||
// @filename: b.ts
|
||||
import * as a from "a";
|
||||
9
tests/cases/compiler/systemExportAssignment2.ts
Normal file
9
tests/cases/compiler/systemExportAssignment2.ts
Normal file
@ -0,0 +1,9 @@
|
||||
// @target: es5
|
||||
// @module: system
|
||||
|
||||
// @filename: a.ts
|
||||
var a = 10;
|
||||
export = a; // Error: export = not allowed in ES6
|
||||
|
||||
// @filename: b.ts
|
||||
import * as a from "a";
|
||||
11
tests/cases/compiler/systemExportAssignment3.ts
Normal file
11
tests/cases/compiler/systemExportAssignment3.ts
Normal file
@ -0,0 +1,11 @@
|
||||
// @target: es5
|
||||
// @module: system
|
||||
|
||||
// @filename: modules.d.ts
|
||||
declare module "a" {
|
||||
var a: number;
|
||||
export = a; // OK, in ambient context
|
||||
}
|
||||
|
||||
// @filename: b.ts
|
||||
import * as a from "a";
|
||||
Loading…
x
Reference in New Issue
Block a user