Skip to content

Commit adc7aa2

Browse files
author
Andy Hanson
committed
Add specific error message for unwanted '.ts' extension
1 parent f59b3a5 commit adc7aa2

File tree

5 files changed

+26
-6
lines changed

5 files changed

+26
-6
lines changed

Diff for: src/compiler/checker.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -1344,7 +1344,12 @@ namespace ts {
13441344

13451345
if (moduleNotFoundError) {
13461346
// report errors only if it was requested
1347-
error(moduleReferenceLiteral, moduleNotFoundError, moduleName);
1347+
if (fileExtensionIs(moduleName, ".ts") && !fileExtensionIs(moduleName, ".d.ts")) {
1348+
error(moduleReferenceLiteral, Diagnostics.Module_name_should_not_include_a_ts_extension_Colon_0, moduleName);
1349+
}
1350+
else {
1351+
error(moduleReferenceLiteral, moduleNotFoundError, moduleName);
1352+
}
13481353
}
13491354
return undefined;
13501355
}

Diff for: src/compiler/diagnosticMessages.json

+4
Original file line numberDiff line numberDiff line change
@@ -1943,6 +1943,10 @@
19431943
"category": "Error",
19441944
"code": 2689
19451945
},
1946+
"Module name should not include a '.ts' extension: '{0}'.": {
1947+
"category": "Error",
1948+
"code": 2690
1949+
},
19461950
"Import declaration '{0}' is using private name '{1}'.": {
19471951
"category": "Error",
19481952
"code": 4000
+8-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
tests/cases/compiler/user.ts(1,15): error TS2307: Cannot find module './m.ts'.
1+
tests/cases/compiler/user.ts(4,15): error TS2690: Module name should not include a '.ts' extension: './m.ts'.
22

33

4-
==== tests/cases/compiler/m.ts (0 errors) ====
5-
export default 0;
6-
74
==== tests/cases/compiler/user.ts (1 errors) ====
5+
// '.ts' extension is OK in a reference
6+
///<reference path="./m.ts"/>
7+
88
import x from "./m.ts";
99
~~~~~~~~
10-
!!! error TS2307: Cannot find module './m.ts'.
10+
!!! error TS2690: Module name should not include a '.ts' extension: './m.ts'.
11+
12+
==== tests/cases/compiler/m.ts (0 errors) ====
13+
export default 0;
1114

Diff for: tests/baselines/reference/moduleResolutionNoTs.js

+5
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
export default 0;
55

66
//// [user.ts]
7+
// '.ts' extension is OK in a reference
8+
///<reference path="./m.ts"/>
9+
710
import x from "./m.ts";
811

912

@@ -12,4 +15,6 @@ import x from "./m.ts";
1215
exports.__esModule = true;
1316
exports["default"] = 0;
1417
//// [user.js]
18+
// '.ts' extension is OK in a reference
19+
///<reference path="./m.ts"/>
1520
"use strict";

Diff for: tests/cases/compiler/moduleResolutionNoTs.ts

+3
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,7 @@
22
export default 0;
33

44
// @filename: user.ts
5+
// '.ts' extension is OK in a reference
6+
///<reference path="./m.ts"/>
7+
58
import x from "./m.ts";

0 commit comments

Comments
 (0)