Skip to content

Commit 94c7896

Browse files
modify error message
1 parent 725dbc2 commit 94c7896

File tree

7 files changed

+49
-11
lines changed

7 files changed

+49
-11
lines changed

src/compiler/checker.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7293,9 +7293,6 @@ namespace ts {
72937293
if (source.flags & TypeFlags.Object && target.flags & TypeFlags.Primitive) {
72947294
tryElaborateErrorsForPrimitivesAndObjects(source, target);
72957295
}
7296-
else if (source.symbol && source.flags & TypeFlags.ObjectType && globalObjectType === source) {
7297-
reportError(Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);
7298-
}
72997296
else if (source.symbol && source.flags & TypeFlags.Object && globalObjectType === source) {
73007297
reportError(Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);
73017298
}
@@ -18764,7 +18761,12 @@ namespace ts {
1876418761

1876518762
const container = node.parent.kind === SyntaxKind.SourceFile ? <SourceFile>node.parent : <ModuleDeclaration>node.parent.parent;
1876618763
if (container.kind === SyntaxKind.ModuleDeclaration && !isAmbientModule(container)) {
18767-
error(node, Diagnostics.A_default_export_can_only_be_used_in_an_ECMAScript_style_module);
18764+
if (node.isExportEquals) {
18765+
error(node, Diagnostics.An_export_assignment_cannot_be_used_in_a_namespace);
18766+
} else {
18767+
error(node, Diagnostics.A_default_export_can_only_be_used_in_an_ECMAScript_style_module);
18768+
}
18769+
1876818770
return;
1876918771
}
1877018772
// Grammar checking

src/compiler/diagnosticMessages.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@
195195
"category": "Error",
196196
"code": 1062
197197
},
198-
"A default export can only be used in an ECMAScript-style module.": {
198+
"An export assignment cannot be used in a namespace.": {
199199
"category": "Error",
200200
"code": 1063
201201
},
@@ -851,6 +851,10 @@
851851
"category": "Error",
852852
"code": 1317
853853
},
854+
"A default export can only be used in an ECMAScript-style module.": {
855+
"category": "Error",
856+
"code": 1318
857+
},
854858
"Duplicate identifier '{0}'.": {
855859
"category": "Error",
856860
"code": 2300
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
tests/cases/conformance/parser/ecmascript5/ExportAssignments/parserExportAssignment10.ts(4,3): error TS1128: Declaration or statement expected.
2+
3+
4+
==== tests/cases/conformance/parser/ecmascript5/ExportAssignments/parserExportAssignment10.ts (1 errors) ====
5+
export default "123";
6+
namespace Foo {
7+
var foo;
8+
export foo;
9+
~~~~~~
10+
!!! error TS1128: Declaration or statement expected.
11+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//// [parserExportAssignment10.ts]
2+
export default "123";
3+
namespace Foo {
4+
var foo;
5+
export foo;
6+
}
7+
8+
//// [parserExportAssignment10.js]
9+
"use strict";
10+
exports.__esModule = true;
11+
exports["default"] = "123";
12+
var Foo;
13+
(function (Foo) {
14+
var foo;
15+
foo;
16+
})(Foo || (Foo = {}));
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
tests/cases/conformance/parser/ecmascript5/ExportAssignments/parserExportAssignment5.ts(2,5): error TS1063: A default export can only be used in an ECMAScript-style module.
1+
tests/cases/conformance/parser/ecmascript5/ExportAssignments/parserExportAssignment5.ts(2,5): error TS1063: An export assignment cannot be used in a namespace.
22

33

44
==== tests/cases/conformance/parser/ecmascript5/ExportAssignments/parserExportAssignment5.ts (1 errors) ====
55
module M {
66
export = A;
77
~~~~~~~~~~~
8-
!!! error TS1063: A default export can only be used in an ECMAScript-style module.
8+
!!! error TS1063: An export assignment cannot be used in a namespace.
99
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
tests/cases/conformance/parser/ecmascript5/ExportAssignments/parserExportAssignment9.ts(2,3): error TS1063: A default export can only be used in an ECMAScript-style module.
2-
tests/cases/conformance/parser/ecmascript5/ExportAssignments/parserExportAssignment9.ts(6,3): error TS1063: A default export can only be used in an ECMAScript-style module.
1+
tests/cases/conformance/parser/ecmascript5/ExportAssignments/parserExportAssignment9.ts(2,3): error TS1318: A default export can only be used in an ECMAScript-style module.
2+
tests/cases/conformance/parser/ecmascript5/ExportAssignments/parserExportAssignment9.ts(6,3): error TS1318: A default export can only be used in an ECMAScript-style module.
33

44

55
==== tests/cases/conformance/parser/ecmascript5/ExportAssignments/parserExportAssignment9.ts (2 errors) ====
66
namespace Foo {
77
export default foo;
88
~~~~~~~~~~~~~~~~~~~
9-
!!! error TS1063: A default export can only be used in an ECMAScript-style module.
9+
!!! error TS1318: A default export can only be used in an ECMAScript-style module.
1010
}
1111

1212
module Bar {
1313
export default bar;
1414
~~~~~~~~~~~~~~~~~~~
15-
!!! error TS1063: A default export can only be used in an ECMAScript-style module.
15+
!!! error TS1318: A default export can only be used in an ECMAScript-style module.
1616
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export default "123";
2+
namespace Foo {
3+
var foo;
4+
export foo;
5+
}

0 commit comments

Comments
 (0)