diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts
index 66742c94f057e..6dc5c0c8ea306 100644
--- a/src/compiler/checker.ts
+++ b/src/compiler/checker.ts
@@ -1531,7 +1531,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
var noImplicitThis = getStrictOptionValue(compilerOptions, "noImplicitThis");
var useUnknownInCatchVariables = getStrictOptionValue(compilerOptions, "useUnknownInCatchVariables");
var exactOptionalPropertyTypes = compilerOptions.exactOptionalPropertyTypes;
- var noUncheckedSideEffectImports = !!compilerOptions.noUncheckedSideEffectImports;
+ var noUncheckedSideEffectImports = compilerOptions.noUncheckedSideEffectImports !== false;
var checkBinaryExpression = createCheckBinaryExpression();
var emitResolver = createResolver();
@@ -4684,9 +4684,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}
}
- function resolveExternalModuleName(location: Node, moduleReferenceExpression: Expression, ignoreErrors?: boolean): Symbol | undefined {
+ function resolveExternalModuleName(location: Node, moduleReferenceExpression: Expression, ignoreErrors?: boolean, errorMessage?: DiagnosticMessage): Symbol | undefined {
const isClassic = getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.Classic;
- const errorMessage = isClassic ?
+ errorMessage ??= isClassic ?
Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option
: Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations;
return resolveExternalModuleNameWorker(location, moduleReferenceExpression, ignoreErrors ? undefined : errorMessage, ignoreErrors);
@@ -48516,7 +48516,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}
}
else if (noUncheckedSideEffectImports && !importClause) {
- void resolveExternalModuleName(node, node.moduleSpecifier);
+ void resolveExternalModuleName(node, node.moduleSpecifier, /*ignoreErrors*/ undefined, Diagnostics.Cannot_find_module_or_type_declarations_for_side_effect_import_of_0);
}
}
checkImportAttributes(node);
diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts
index 09f810f204624..1ef420daf8537 100644
--- a/src/compiler/commandLineParser.ts
+++ b/src/compiler/commandLineParser.ts
@@ -1243,7 +1243,7 @@ const commandOptionsWithoutBuild: CommandLineOption[] = [
affectsBuildInfo: true,
category: Diagnostics.Modules,
description: Diagnostics.Check_side_effect_imports,
- defaultValueDescription: false,
+ defaultValueDescription: true,
},
// Source Maps
diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json
index 22ac200a0dcee..8e123cdd8c5bc 100644
--- a/src/compiler/diagnosticMessages.json
+++ b/src/compiler/diagnosticMessages.json
@@ -4007,6 +4007,10 @@
"category": "Error",
"code": 2881
},
+ "Cannot find module or type declarations for side-effect import of '{0}'.": {
+ "category": "Error",
+ "code": 2882
+ },
"Import declaration '{0}' is using private name '{1}'.": {
"category": "Error",
diff --git a/tests/baselines/reference/amdDependencyCommentName4.errors.txt b/tests/baselines/reference/amdDependencyCommentName4.errors.txt
index 6788d6c3b3286..dde817520208f 100644
--- a/tests/baselines/reference/amdDependencyCommentName4.errors.txt
+++ b/tests/baselines/reference/amdDependencyCommentName4.errors.txt
@@ -1,16 +1,20 @@
+amdDependencyCommentName4.ts(6,8): error TS2882: Cannot find module or type declarations for side-effect import of 'unaliasedModule1'.
amdDependencyCommentName4.ts(8,21): error TS2792: Cannot find module 'aliasedModule1'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
amdDependencyCommentName4.ts(11,26): error TS2792: Cannot find module 'aliasedModule2'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
amdDependencyCommentName4.ts(14,15): error TS2792: Cannot find module 'aliasedModule3'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
amdDependencyCommentName4.ts(17,21): error TS2792: Cannot find module 'aliasedModule4'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
+amdDependencyCommentName4.ts(20,8): error TS2882: Cannot find module or type declarations for side-effect import of 'unaliasedModule2'.
-==== amdDependencyCommentName4.ts (4 errors) ====
+==== amdDependencyCommentName4.ts (6 errors) ====
///
///
///
///
import "unaliasedModule1";
+ ~~~~~~~~~~~~~~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'unaliasedModule1'.
import r1 = require("aliasedModule1");
~~~~~~~~~~~~~~~~
@@ -32,4 +36,6 @@ amdDependencyCommentName4.ts(17,21): error TS2792: Cannot find module 'aliasedMo
!!! error TS2792: Cannot find module 'aliasedModule4'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
ns;
- import "unaliasedModule2";
\ No newline at end of file
+ import "unaliasedModule2";
+ ~~~~~~~~~~~~~~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'unaliasedModule2'.
\ No newline at end of file
diff --git a/tests/baselines/reference/autoAccessorDisallowedModifiers(target=es2017).errors.txt b/tests/baselines/reference/autoAccessorDisallowedModifiers(target=es2017).errors.txt
index d9b841ee69892..666dd521e5f15 100644
--- a/tests/baselines/reference/autoAccessorDisallowedModifiers(target=es2017).errors.txt
+++ b/tests/baselines/reference/autoAccessorDisallowedModifiers(target=es2017).errors.txt
@@ -23,6 +23,7 @@ autoAccessorDisallowedModifiers.ts(31,1): error TS1275: 'accessor' modifier can
autoAccessorDisallowedModifiers.ts(32,1): error TS1275: 'accessor' modifier can only appear on a property declaration.
autoAccessorDisallowedModifiers.ts(33,1): error TS1275: 'accessor' modifier can only appear on a property declaration.
autoAccessorDisallowedModifiers.ts(34,1): error TS1275: 'accessor' modifier can only appear on a property declaration.
+autoAccessorDisallowedModifiers.ts(34,17): error TS2882: Cannot find module or type declarations for side-effect import of 'x'.
autoAccessorDisallowedModifiers.ts(35,1): error TS1275: 'accessor' modifier can only appear on a property declaration.
autoAccessorDisallowedModifiers.ts(35,25): error TS2792: Cannot find module 'x'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
autoAccessorDisallowedModifiers.ts(36,1): error TS1275: 'accessor' modifier can only appear on a property declaration.
@@ -30,7 +31,7 @@ autoAccessorDisallowedModifiers.ts(37,1): error TS1275: 'accessor' modifier can
autoAccessorDisallowedModifiers.ts(38,1): error TS1275: 'accessor' modifier can only appear on a property declaration.
-==== autoAccessorDisallowedModifiers.ts (30 errors) ====
+==== autoAccessorDisallowedModifiers.ts (31 errors) ====
abstract class C1 {
accessor accessor a: any;
~~~~~~~~
@@ -115,6 +116,8 @@ autoAccessorDisallowedModifiers.ts(38,1): error TS1275: 'accessor' modifier can
accessor import "x";
~~~~~~~~
!!! error TS1275: 'accessor' modifier can only appear on a property declaration.
+ ~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'x'.
accessor import {} from "x";
~~~~~~~~
!!! error TS1275: 'accessor' modifier can only appear on a property declaration.
diff --git a/tests/baselines/reference/autoAccessorDisallowedModifiers(target=esnext).errors.txt b/tests/baselines/reference/autoAccessorDisallowedModifiers(target=esnext).errors.txt
index d9b841ee69892..666dd521e5f15 100644
--- a/tests/baselines/reference/autoAccessorDisallowedModifiers(target=esnext).errors.txt
+++ b/tests/baselines/reference/autoAccessorDisallowedModifiers(target=esnext).errors.txt
@@ -23,6 +23,7 @@ autoAccessorDisallowedModifiers.ts(31,1): error TS1275: 'accessor' modifier can
autoAccessorDisallowedModifiers.ts(32,1): error TS1275: 'accessor' modifier can only appear on a property declaration.
autoAccessorDisallowedModifiers.ts(33,1): error TS1275: 'accessor' modifier can only appear on a property declaration.
autoAccessorDisallowedModifiers.ts(34,1): error TS1275: 'accessor' modifier can only appear on a property declaration.
+autoAccessorDisallowedModifiers.ts(34,17): error TS2882: Cannot find module or type declarations for side-effect import of 'x'.
autoAccessorDisallowedModifiers.ts(35,1): error TS1275: 'accessor' modifier can only appear on a property declaration.
autoAccessorDisallowedModifiers.ts(35,25): error TS2792: Cannot find module 'x'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
autoAccessorDisallowedModifiers.ts(36,1): error TS1275: 'accessor' modifier can only appear on a property declaration.
@@ -30,7 +31,7 @@ autoAccessorDisallowedModifiers.ts(37,1): error TS1275: 'accessor' modifier can
autoAccessorDisallowedModifiers.ts(38,1): error TS1275: 'accessor' modifier can only appear on a property declaration.
-==== autoAccessorDisallowedModifiers.ts (30 errors) ====
+==== autoAccessorDisallowedModifiers.ts (31 errors) ====
abstract class C1 {
accessor accessor a: any;
~~~~~~~~
@@ -115,6 +116,8 @@ autoAccessorDisallowedModifiers.ts(38,1): error TS1275: 'accessor' modifier can
accessor import "x";
~~~~~~~~
!!! error TS1275: 'accessor' modifier can only appear on a property declaration.
+ ~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'x'.
accessor import {} from "x";
~~~~~~~~
!!! error TS1275: 'accessor' modifier can only appear on a property declaration.
diff --git a/tests/baselines/reference/checkExportsObjectAssignPrototypeProperty.errors.txt b/tests/baselines/reference/checkExportsObjectAssignPrototypeProperty.errors.txt
index 805191bcca68f..afb7252d4bc23 100644
--- a/tests/baselines/reference/checkExportsObjectAssignPrototypeProperty.errors.txt
+++ b/tests/baselines/reference/checkExportsObjectAssignPrototypeProperty.errors.txt
@@ -1,3 +1,4 @@
+validator.ts(1,8): error TS2882: Cannot find module or type declarations for side-effect import of './'.
validator.ts(19,4): error TS2540: Cannot assign to 'readonlyProp' because it is a read-only property.
validator.ts(20,4): error TS2540: Cannot assign to 'readonlyAccessor' because it is a read-only property.
validator.ts(21,1): error TS2322: Type 'string' is not assignable to type 'number'.
@@ -5,8 +6,10 @@ validator.ts(22,1): error TS2322: Type 'string' is not assignable to type 'numbe
validator.ts(23,1): error TS2322: Type 'number' is not assignable to type 'string'.
-==== validator.ts (5 errors) ====
+==== validator.ts (6 errors) ====
import "./";
+ ~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of './'.
import Person = require("./mod1");
diff --git a/tests/baselines/reference/emit(jsx=preserve).errors.txt b/tests/baselines/reference/emit(jsx=preserve).errors.txt
index 894ae70f4392d..1773f6de8b907 100644
--- a/tests/baselines/reference/emit(jsx=preserve).errors.txt
+++ b/tests/baselines/reference/emit(jsx=preserve).errors.txt
@@ -3,6 +3,7 @@ main.ts(3,16): error TS2307: Cannot find module '../foo.mts' or its correspondin
main.ts(4,16): error TS2307: Cannot find module '../../foo.cts' or its corresponding type declarations.
main.ts(5,16): error TS2307: Cannot find module './foo.tsx' or its corresponding type declarations.
main.ts(6,22): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
+main.ts(7,8): error TS2882: Cannot find module or type declarations for side-effect import of './foo.ts'.
main.ts(8,15): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(10,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(11,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
@@ -23,7 +24,7 @@ no.ts(11,8): error TS2307: Cannot find module 'node:path' or its corresponding t
==== globals.d.ts (0 errors) ====
declare function require(module: string): any;
-==== main.ts (10 errors) ====
+==== main.ts (11 errors) ====
// Rewrite
import {} from "./foo.ts";
~~~~~~~~~~
@@ -41,6 +42,8 @@ no.ts(11,8): error TS2307: Cannot find module 'node:path' or its corresponding t
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
import "./foo.ts";
+ ~~~~~~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of './foo.ts'.
export * from "./foo.ts";
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
diff --git a/tests/baselines/reference/emit(jsx=react).errors.txt b/tests/baselines/reference/emit(jsx=react).errors.txt
index 894ae70f4392d..1773f6de8b907 100644
--- a/tests/baselines/reference/emit(jsx=react).errors.txt
+++ b/tests/baselines/reference/emit(jsx=react).errors.txt
@@ -3,6 +3,7 @@ main.ts(3,16): error TS2307: Cannot find module '../foo.mts' or its correspondin
main.ts(4,16): error TS2307: Cannot find module '../../foo.cts' or its corresponding type declarations.
main.ts(5,16): error TS2307: Cannot find module './foo.tsx' or its corresponding type declarations.
main.ts(6,22): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
+main.ts(7,8): error TS2882: Cannot find module or type declarations for side-effect import of './foo.ts'.
main.ts(8,15): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(10,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(11,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
@@ -23,7 +24,7 @@ no.ts(11,8): error TS2307: Cannot find module 'node:path' or its corresponding t
==== globals.d.ts (0 errors) ====
declare function require(module: string): any;
-==== main.ts (10 errors) ====
+==== main.ts (11 errors) ====
// Rewrite
import {} from "./foo.ts";
~~~~~~~~~~
@@ -41,6 +42,8 @@ no.ts(11,8): error TS2307: Cannot find module 'node:path' or its corresponding t
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
import "./foo.ts";
+ ~~~~~~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of './foo.ts'.
export * from "./foo.ts";
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
diff --git a/tests/baselines/reference/es6ImportWithoutFromClauseInEs5.errors.txt b/tests/baselines/reference/es6ImportWithoutFromClauseInEs5.errors.txt
new file mode 100644
index 0000000000000..18251d4b9c34b
--- /dev/null
+++ b/tests/baselines/reference/es6ImportWithoutFromClauseInEs5.errors.txt
@@ -0,0 +1,10 @@
+es6ImportWithoutFromClauseInEs5_1.ts(1,8): error TS2882: Cannot find module or type declarations for side-effect import of 'es6ImportWithoutFromClauseInEs5_0'.
+
+
+==== es6ImportWithoutFromClauseInEs5_0.ts (0 errors) ====
+ export var a = 10;
+
+==== es6ImportWithoutFromClauseInEs5_1.ts (1 errors) ====
+ import "es6ImportWithoutFromClauseInEs5_0";
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'es6ImportWithoutFromClauseInEs5_0'.
\ No newline at end of file
diff --git a/tests/baselines/reference/es6ImportWithoutFromClauseWithExport.errors.txt b/tests/baselines/reference/es6ImportWithoutFromClauseWithExport.errors.txt
index d40a9dee7f283..1c36041285130 100644
--- a/tests/baselines/reference/es6ImportWithoutFromClauseWithExport.errors.txt
+++ b/tests/baselines/reference/es6ImportWithoutFromClauseWithExport.errors.txt
@@ -1,10 +1,13 @@
client.ts(1,1): error TS1191: An import declaration cannot have modifiers.
+client.ts(1,15): error TS2882: Cannot find module or type declarations for side-effect import of 'server'.
==== server.ts (0 errors) ====
export var a = 10;
-==== client.ts (1 errors) ====
+==== client.ts (2 errors) ====
export import "server";
~~~~~~
-!!! error TS1191: An import declaration cannot have modifiers.
\ No newline at end of file
+!!! error TS1191: An import declaration cannot have modifiers.
+ ~~~~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'server'.
\ No newline at end of file
diff --git a/tests/baselines/reference/extendGlobalThis.errors.txt b/tests/baselines/reference/extendGlobalThis.errors.txt
new file mode 100644
index 0000000000000..121635b759fa6
--- /dev/null
+++ b/tests/baselines/reference/extendGlobalThis.errors.txt
@@ -0,0 +1,20 @@
+index.ts(1,8): error TS2882: Cannot find module or type declarations for side-effect import of './extention'.
+
+
+==== extension.d.ts (0 errors) ====
+ declare global {
+ namespace globalThis {
+ var test: string;
+ }
+ }
+
+ export {}
+
+==== index.ts (1 errors) ====
+ import "./extention";
+ ~~~~~~~~~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of './extention'.
+
+ globalThis.tests = "a-b";
+ console.log(globalThis.test.split("-"));
+
\ No newline at end of file
diff --git a/tests/baselines/reference/extendGlobalThis.types b/tests/baselines/reference/extendGlobalThis.types
index 499b561819e53..a3b91ff95e015 100644
--- a/tests/baselines/reference/extendGlobalThis.types
+++ b/tests/baselines/reference/extendGlobalThis.types
@@ -24,6 +24,7 @@ globalThis.tests = "a-b";
>globalThis.tests = "a-b" : "a-b"
> : ^^^^^
>globalThis.tests : any
+> : ^^^
>globalThis : typeof globalThis
> : ^^^^^^^^^^^^^^^^^
>tests : any
diff --git a/tests/baselines/reference/jsxFactoryQualifiedNameWithEs5.errors.txt b/tests/baselines/reference/jsxFactoryQualifiedNameWithEs5.errors.txt
new file mode 100644
index 0000000000000..e4aa4945f358e
--- /dev/null
+++ b/tests/baselines/reference/jsxFactoryQualifiedNameWithEs5.errors.txt
@@ -0,0 +1,16 @@
+index.tsx(1,8): error TS2882: Cannot find module or type declarations for side-effect import of './jsx'.
+
+
+==== index.tsx (1 errors) ====
+ import "./jsx";
+ ~~~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of './jsx'.
+
+ var skate: any;
+ const React = { createElement: skate.h };
+
+ class Component {
+ renderCallback() {
+ return
test
;
+ }
+ };
\ No newline at end of file
diff --git a/tests/baselines/reference/jsxFactoryQualifiedNameWithEs5.types b/tests/baselines/reference/jsxFactoryQualifiedNameWithEs5.types
index c9a019263fe47..dbb1eed353c38 100644
--- a/tests/baselines/reference/jsxFactoryQualifiedNameWithEs5.types
+++ b/tests/baselines/reference/jsxFactoryQualifiedNameWithEs5.types
@@ -5,6 +5,7 @@ import "./jsx";
var skate: any;
>skate : any
+> : ^^^
const React = { createElement: skate.h };
>React : { createElement: any; }
@@ -12,7 +13,9 @@ const React = { createElement: skate.h };
>{ createElement: skate.h } : { createElement: any; }
> : ^^^^^^^^^^^^^^^^^^^^^^^
>createElement : any
+> : ^^^
>skate.h : any
+> : ^^^
>skate : any
> : ^^^
>h : any
@@ -27,7 +30,8 @@ class Component {
> : ^^^^^^^^^
return test
;
->test
: error
+>test
: any
+> : ^^^
>div : any
> : ^^^
>div : any
diff --git a/tests/baselines/reference/jsxImportForSideEffectsNonExtantNoError.errors.txt b/tests/baselines/reference/jsxImportForSideEffectsNonExtantNoError.errors.txt
new file mode 100644
index 0000000000000..c7c68d0a0c72e
--- /dev/null
+++ b/tests/baselines/reference/jsxImportForSideEffectsNonExtantNoError.errors.txt
@@ -0,0 +1,13 @@
+jsxImportForSideEffectsNonExtantNoError.tsx(4,8): error TS2882: Cannot find module or type declarations for side-effect import of './App.css'.
+
+
+==== jsxImportForSideEffectsNonExtantNoError.tsx (1 errors) ====
+ ///
+ import * as React from "react";
+
+ import "./App.css"; // doesn't actually exist
+ ~~~~~~~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of './App.css'.
+
+ const tag = ;
+
\ No newline at end of file
diff --git a/tests/baselines/reference/moduleAugmentationInAmbientModule5.js b/tests/baselines/reference/moduleAugmentationInAmbientModule5.js
index 923100c74d22b..d6149f30e081b 100644
--- a/tests/baselines/reference/moduleAugmentationInAmbientModule5.js
+++ b/tests/baselines/reference/moduleAugmentationInAmbientModule5.js
@@ -33,3 +33,30 @@ var y = x.getA().x;
//// [f.d.ts]
import "array";
+
+
+//// [DtsFileErrors]
+
+
+f.d.ts(1,8): error TS2882: Cannot find module or type declarations for side-effect import of 'array'.
+
+
+==== f.d.ts (1 errors) ====
+ import "array";
+ ~~~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'array'.
+
+==== array.d.ts (0 errors) ====
+ declare module "A" {
+ class A { x: number; }
+ }
+
+ declare module "array" {
+ import {A} from "A";
+ global {
+ interface Array {
+ getA(): A;
+ }
+ }
+ }
+
\ No newline at end of file
diff --git a/tests/baselines/reference/moduleAugmentationsImports3.js b/tests/baselines/reference/moduleAugmentationsImports3.js
index 14ae0f65f2ffa..dfb7176ee8d84 100644
--- a/tests/baselines/reference/moduleAugmentationsImports3.js
+++ b/tests/baselines/reference/moduleAugmentationsImports3.js
@@ -106,3 +106,53 @@ declare module "main" {
import "D";
import "e";
}
+
+
+//// [DtsFileErrors]
+
+
+f.d.ts(20,12): error TS2882: Cannot find module or type declarations for side-effect import of 'D'.
+
+
+==== f.d.ts (1 errors) ====
+ ///
+ declare module "a" {
+ export class A {
+ }
+ }
+ declare module "b" {
+ export class B {
+ x: number;
+ }
+ }
+ declare module "e" {
+ import { Cls } from "C";
+ module "a" {
+ interface A {
+ getCls(): Cls;
+ }
+ }
+ }
+ declare module "main" {
+ import "D";
+ ~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'D'.
+ import "e";
+ }
+
+==== c.d.ts (0 errors) ====
+ declare module "C" {
+ class Cls {y: string; }
+ }
+
+==== d.d.ts (0 errors) ====
+ declare module "D" {
+ import {A} from "a";
+ import {B} from "b";
+ module "a" {
+ interface A {
+ getB(): B;
+ }
+ }
+ }
+
\ No newline at end of file
diff --git a/tests/baselines/reference/moduleAugmentationsImports4.js b/tests/baselines/reference/moduleAugmentationsImports4.js
index d009f154ad0fd..f70b3e3768262 100644
--- a/tests/baselines/reference/moduleAugmentationsImports4.js
+++ b/tests/baselines/reference/moduleAugmentationsImports4.js
@@ -93,3 +93,60 @@ declare module "main" {
import "D";
import "E";
}
+
+
+//// [DtsFileErrors]
+
+
+f.d.ts(11,12): error TS2882: Cannot find module or type declarations for side-effect import of 'D'.
+f.d.ts(12,12): error TS2882: Cannot find module or type declarations for side-effect import of 'E'.
+
+
+==== f.d.ts (2 errors) ====
+ declare module "a" {
+ export class A {
+ }
+ }
+ declare module "b" {
+ export class B {
+ x: number;
+ }
+ }
+ declare module "main" {
+ import "D";
+ ~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'D'.
+ import "E";
+ ~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'E'.
+ }
+
+==== c.d.ts (0 errors) ====
+ declare module "C" {
+ class Cls {y: string; }
+ }
+
+==== d.d.ts (0 errors) ====
+ declare module "D" {
+ import {A} from "a";
+ import {B} from "b";
+ module "a" {
+ interface A {
+ getB(): B;
+ }
+ }
+ }
+
+==== e.d.ts (0 errors) ====
+ ///
+ declare module "E" {
+ import {A} from "a";
+ import {Cls} from "C";
+
+ module "a" {
+ interface A {
+ getCls(): Cls;
+ }
+ }
+ }
+
\ No newline at end of file
diff --git a/tests/baselines/reference/moduleResolutionWithExtensions_unexpected2.errors.txt b/tests/baselines/reference/moduleResolutionWithExtensions_unexpected2.errors.txt
new file mode 100644
index 0000000000000..60632efa9835f
--- /dev/null
+++ b/tests/baselines/reference/moduleResolutionWithExtensions_unexpected2.errors.txt
@@ -0,0 +1,14 @@
+/a.ts(1,8): error TS2882: Cannot find module or type declarations for side-effect import of 'foo'.
+
+
+==== /a.ts (1 errors) ====
+ import "foo";
+ ~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'foo'.
+
+==== /node_modules/foo/foo.js (0 errors) ====
+ This file is not read.
+
+==== /node_modules/foo/package.json (0 errors) ====
+ { "types": "foo.js" }
+
\ No newline at end of file
diff --git a/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=node16).errors.txt b/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=node16).errors.txt
index 15bd70e4c2e9d..2a0e2142ec20e 100644
--- a/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=node16).errors.txt
+++ b/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=node16).errors.txt
@@ -1,3 +1,4 @@
+file.js(2,8): error TS2882: Cannot find module or type declarations for side-effect import of 'fs'.
file.js(4,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
index.js(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.
index.js(3,1): error TS8003: 'export =' can only be used in TypeScript files.
@@ -22,9 +23,11 @@ subfolder/index.js(3,1): error TS8003: 'export =' can only be used in TypeScript
!!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.
~~~~~~~~~~~
!!! error TS8003: 'export =' can only be used in TypeScript files.
-==== file.js (1 errors) ====
+==== file.js (2 errors) ====
// esm format file
import "fs";
+ ~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'fs'.
const a = {};
module.exports = a;
~~~~~~
diff --git a/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=node18).errors.txt b/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=node18).errors.txt
index 15bd70e4c2e9d..2a0e2142ec20e 100644
--- a/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=node18).errors.txt
+++ b/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=node18).errors.txt
@@ -1,3 +1,4 @@
+file.js(2,8): error TS2882: Cannot find module or type declarations for side-effect import of 'fs'.
file.js(4,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
index.js(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.
index.js(3,1): error TS8003: 'export =' can only be used in TypeScript files.
@@ -22,9 +23,11 @@ subfolder/index.js(3,1): error TS8003: 'export =' can only be used in TypeScript
!!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.
~~~~~~~~~~~
!!! error TS8003: 'export =' can only be used in TypeScript files.
-==== file.js (1 errors) ====
+==== file.js (2 errors) ====
// esm format file
import "fs";
+ ~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'fs'.
const a = {};
module.exports = a;
~~~~~~
diff --git a/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=node20).errors.txt b/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=node20).errors.txt
index 15bd70e4c2e9d..2a0e2142ec20e 100644
--- a/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=node20).errors.txt
+++ b/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=node20).errors.txt
@@ -1,3 +1,4 @@
+file.js(2,8): error TS2882: Cannot find module or type declarations for side-effect import of 'fs'.
file.js(4,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
index.js(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.
index.js(3,1): error TS8003: 'export =' can only be used in TypeScript files.
@@ -22,9 +23,11 @@ subfolder/index.js(3,1): error TS8003: 'export =' can only be used in TypeScript
!!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.
~~~~~~~~~~~
!!! error TS8003: 'export =' can only be used in TypeScript files.
-==== file.js (1 errors) ====
+==== file.js (2 errors) ====
// esm format file
import "fs";
+ ~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'fs'.
const a = {};
module.exports = a;
~~~~~~
diff --git a/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=nodenext).errors.txt
index 15bd70e4c2e9d..2a0e2142ec20e 100644
--- a/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=nodenext).errors.txt
+++ b/tests/baselines/reference/nodeModulesAllowJsExportAssignment(module=nodenext).errors.txt
@@ -1,3 +1,4 @@
+file.js(2,8): error TS2882: Cannot find module or type declarations for side-effect import of 'fs'.
file.js(4,1): error TS2580: Cannot find name 'module'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
index.js(3,1): error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.
index.js(3,1): error TS8003: 'export =' can only be used in TypeScript files.
@@ -22,9 +23,11 @@ subfolder/index.js(3,1): error TS8003: 'export =' can only be used in TypeScript
!!! error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.
~~~~~~~~~~~
!!! error TS8003: 'export =' can only be used in TypeScript files.
-==== file.js (1 errors) ====
+==== file.js (2 errors) ====
// esm format file
import "fs";
+ ~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'fs'.
const a = {};
module.exports = a;
~~~~~~
diff --git a/tests/baselines/reference/nodeModulesCJSEmit1(module=node18).errors.txt b/tests/baselines/reference/nodeModulesCJSEmit1(module=node18).errors.txt
index 5e3604d311b92..82115b7026de1 100644
--- a/tests/baselines/reference/nodeModulesCJSEmit1(module=node18).errors.txt
+++ b/tests/baselines/reference/nodeModulesCJSEmit1(module=node18).errors.txt
@@ -1,3 +1,4 @@
+/3.cjs(1,8): error TS2882: Cannot find module or type declarations for side-effect import of 'foo'.
/3.cjs(2,1): error TS2304: Cannot find name 'exports'.
/5.cjs(2,8): error TS1192: Module '"/3"' has no default export.
@@ -8,8 +9,10 @@
==== /2.cjs (0 errors) ====
exports.foo = 0;
-==== /3.cjs (1 errors) ====
+==== /3.cjs (2 errors) ====
import "foo";
+ ~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'foo'.
exports.foo = {};
~~~~~~~
!!! error TS2304: Cannot find name 'exports'.
diff --git a/tests/baselines/reference/nodeModulesCJSEmit1(module=node20).errors.txt b/tests/baselines/reference/nodeModulesCJSEmit1(module=node20).errors.txt
index 5e3604d311b92..82115b7026de1 100644
--- a/tests/baselines/reference/nodeModulesCJSEmit1(module=node20).errors.txt
+++ b/tests/baselines/reference/nodeModulesCJSEmit1(module=node20).errors.txt
@@ -1,3 +1,4 @@
+/3.cjs(1,8): error TS2882: Cannot find module or type declarations for side-effect import of 'foo'.
/3.cjs(2,1): error TS2304: Cannot find name 'exports'.
/5.cjs(2,8): error TS1192: Module '"/3"' has no default export.
@@ -8,8 +9,10 @@
==== /2.cjs (0 errors) ====
exports.foo = 0;
-==== /3.cjs (1 errors) ====
+==== /3.cjs (2 errors) ====
import "foo";
+ ~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'foo'.
exports.foo = {};
~~~~~~~
!!! error TS2304: Cannot find name 'exports'.
diff --git a/tests/baselines/reference/nodeModulesCJSEmit1(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesCJSEmit1(module=nodenext).errors.txt
index 5e3604d311b92..82115b7026de1 100644
--- a/tests/baselines/reference/nodeModulesCJSEmit1(module=nodenext).errors.txt
+++ b/tests/baselines/reference/nodeModulesCJSEmit1(module=nodenext).errors.txt
@@ -1,3 +1,4 @@
+/3.cjs(1,8): error TS2882: Cannot find module or type declarations for side-effect import of 'foo'.
/3.cjs(2,1): error TS2304: Cannot find name 'exports'.
/5.cjs(2,8): error TS1192: Module '"/3"' has no default export.
@@ -8,8 +9,10 @@
==== /2.cjs (0 errors) ====
exports.foo = 0;
-==== /3.cjs (1 errors) ====
+==== /3.cjs (2 errors) ====
import "foo";
+ ~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'foo'.
exports.foo = {};
~~~~~~~
!!! error TS2304: Cannot find name 'exports'.
diff --git a/tests/baselines/reference/nodeModulesNoDirectoryModule.errors.txt b/tests/baselines/reference/nodeModulesNoDirectoryModule.errors.txt
index b6f165f8b9014..9acbfa9b1eae6 100644
--- a/tests/baselines/reference/nodeModulesNoDirectoryModule.errors.txt
+++ b/tests/baselines/reference/nodeModulesNoDirectoryModule.errors.txt
@@ -1,4 +1,4 @@
-/index.ts(2,8): error TS2307: Cannot find module 'i-have-a-dir-and-main/dist/dir' or its corresponding type declarations.
+/index.ts(2,8): error TS2882: Cannot find module or type declarations for side-effect import of 'i-have-a-dir-and-main/dist/dir'.
==== /node_modules/i-have-a-dir-and-main/package.json (0 errors) ====
@@ -22,5 +22,5 @@
import 'i-have-a-dir-and-main' // ok
import 'i-have-a-dir-and-main/dist/dir' // error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! error TS2307: Cannot find module 'i-have-a-dir-and-main/dist/dir' or its corresponding type declarations.
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'i-have-a-dir-and-main/dist/dir'.
\ No newline at end of file
diff --git a/tests/baselines/reference/pathsValidation4.errors.txt b/tests/baselines/reference/pathsValidation4.errors.txt
index 386079a29503b..66e953b42a184 100644
--- a/tests/baselines/reference/pathsValidation4.errors.txt
+++ b/tests/baselines/reference/pathsValidation4.errors.txt
@@ -1,6 +1,7 @@
tsconfig.json(6,11): error TS5061: Pattern '@interface/**/*' can have at most one '*' character.
tsconfig.json(7,11): error TS5061: Pattern '@service/**/*' can have at most one '*' character.
tsconfig.json(7,29): error TS5062: Substitution './src/service/**/*' in pattern '@service/**/*' can have at most one '*' character.
+src/main.ts(1,8): error TS2882: Cannot find module or type declarations for side-effect import of 'someModule'.
==== tsconfig.json (3 errors) ====
@@ -22,5 +23,7 @@ tsconfig.json(7,29): error TS5062: Substitution './src/service/**/*' in pattern
}
}
-==== src/main.ts (0 errors) ====
- import 'someModule';
\ No newline at end of file
+==== src/main.ts (1 errors) ====
+ import 'someModule';
+ ~~~~~~~~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'someModule'.
\ No newline at end of file
diff --git a/tests/baselines/reference/pathsValidation5.errors.txt b/tests/baselines/reference/pathsValidation5.errors.txt
index 80eaf2d68f6cb..4b93115d6c8b0 100644
--- a/tests/baselines/reference/pathsValidation5.errors.txt
+++ b/tests/baselines/reference/pathsValidation5.errors.txt
@@ -1,6 +1,7 @@
tsconfig.json(5,26): error TS5090: Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?
tsconfig.json(6,19): error TS5090: Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?
tsconfig.json(7,23): error TS5090: Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?
+src/main.ts(1,8): error TS2882: Cannot find module or type declarations for side-effect import of 'someModule'.
==== tsconfig.json (3 errors) ====
@@ -21,5 +22,7 @@ tsconfig.json(7,23): error TS5090: Non-relative paths are not allowed when 'base
}
}
-==== src/main.ts (0 errors) ====
- import 'someModule';
\ No newline at end of file
+==== src/main.ts (1 errors) ====
+ import 'someModule';
+ ~~~~~~~~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'someModule'.
\ No newline at end of file
diff --git a/tests/baselines/reference/sideEffectImports1(module=commonjs,nouncheckedsideeffectimports=true).errors.txt b/tests/baselines/reference/sideEffectImports1(module=commonjs,nouncheckedsideeffectimports=true).errors.txt
index e1813116cb006..bdf1aeaff8068 100644
--- a/tests/baselines/reference/sideEffectImports1(module=commonjs,nouncheckedsideeffectimports=true).errors.txt
+++ b/tests/baselines/reference/sideEffectImports1(module=commonjs,nouncheckedsideeffectimports=true).errors.txt
@@ -1,16 +1,16 @@
-sideEffectImports1.ts(1,8): error TS2307: Cannot find module 'does-not-exist' or its corresponding type declarations.
-sideEffectImports1.ts(2,8): error TS2307: Cannot find module './does-not-exist-either' or its corresponding type declarations.
-sideEffectImports1.ts(3,8): error TS2307: Cannot find module './does-not-exist-either.js' or its corresponding type declarations.
+sideEffectImports1.ts(1,8): error TS2882: Cannot find module or type declarations for side-effect import of 'does-not-exist'.
+sideEffectImports1.ts(2,8): error TS2882: Cannot find module or type declarations for side-effect import of './does-not-exist-either'.
+sideEffectImports1.ts(3,8): error TS2882: Cannot find module or type declarations for side-effect import of './does-not-exist-either.js'.
==== sideEffectImports1.ts (3 errors) ====
import "does-not-exist";
~~~~~~~~~~~~~~~~
-!!! error TS2307: Cannot find module 'does-not-exist' or its corresponding type declarations.
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'does-not-exist'.
import "./does-not-exist-either";
~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! error TS2307: Cannot find module './does-not-exist-either' or its corresponding type declarations.
+!!! error TS2882: Cannot find module or type declarations for side-effect import of './does-not-exist-either'.
import "./does-not-exist-either.js";
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! error TS2307: Cannot find module './does-not-exist-either.js' or its corresponding type declarations.
+!!! error TS2882: Cannot find module or type declarations for side-effect import of './does-not-exist-either.js'.
\ No newline at end of file
diff --git a/tests/baselines/reference/sideEffectImports1(module=nodenext,nouncheckedsideeffectimports=true).errors.txt b/tests/baselines/reference/sideEffectImports1(module=nodenext,nouncheckedsideeffectimports=true).errors.txt
index e1813116cb006..bdf1aeaff8068 100644
--- a/tests/baselines/reference/sideEffectImports1(module=nodenext,nouncheckedsideeffectimports=true).errors.txt
+++ b/tests/baselines/reference/sideEffectImports1(module=nodenext,nouncheckedsideeffectimports=true).errors.txt
@@ -1,16 +1,16 @@
-sideEffectImports1.ts(1,8): error TS2307: Cannot find module 'does-not-exist' or its corresponding type declarations.
-sideEffectImports1.ts(2,8): error TS2307: Cannot find module './does-not-exist-either' or its corresponding type declarations.
-sideEffectImports1.ts(3,8): error TS2307: Cannot find module './does-not-exist-either.js' or its corresponding type declarations.
+sideEffectImports1.ts(1,8): error TS2882: Cannot find module or type declarations for side-effect import of 'does-not-exist'.
+sideEffectImports1.ts(2,8): error TS2882: Cannot find module or type declarations for side-effect import of './does-not-exist-either'.
+sideEffectImports1.ts(3,8): error TS2882: Cannot find module or type declarations for side-effect import of './does-not-exist-either.js'.
==== sideEffectImports1.ts (3 errors) ====
import "does-not-exist";
~~~~~~~~~~~~~~~~
-!!! error TS2307: Cannot find module 'does-not-exist' or its corresponding type declarations.
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'does-not-exist'.
import "./does-not-exist-either";
~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! error TS2307: Cannot find module './does-not-exist-either' or its corresponding type declarations.
+!!! error TS2882: Cannot find module or type declarations for side-effect import of './does-not-exist-either'.
import "./does-not-exist-either.js";
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! error TS2307: Cannot find module './does-not-exist-either.js' or its corresponding type declarations.
+!!! error TS2882: Cannot find module or type declarations for side-effect import of './does-not-exist-either.js'.
\ No newline at end of file
diff --git a/tests/baselines/reference/sideEffectImports1(module=preserve,nouncheckedsideeffectimports=true).errors.txt b/tests/baselines/reference/sideEffectImports1(module=preserve,nouncheckedsideeffectimports=true).errors.txt
index e1813116cb006..bdf1aeaff8068 100644
--- a/tests/baselines/reference/sideEffectImports1(module=preserve,nouncheckedsideeffectimports=true).errors.txt
+++ b/tests/baselines/reference/sideEffectImports1(module=preserve,nouncheckedsideeffectimports=true).errors.txt
@@ -1,16 +1,16 @@
-sideEffectImports1.ts(1,8): error TS2307: Cannot find module 'does-not-exist' or its corresponding type declarations.
-sideEffectImports1.ts(2,8): error TS2307: Cannot find module './does-not-exist-either' or its corresponding type declarations.
-sideEffectImports1.ts(3,8): error TS2307: Cannot find module './does-not-exist-either.js' or its corresponding type declarations.
+sideEffectImports1.ts(1,8): error TS2882: Cannot find module or type declarations for side-effect import of 'does-not-exist'.
+sideEffectImports1.ts(2,8): error TS2882: Cannot find module or type declarations for side-effect import of './does-not-exist-either'.
+sideEffectImports1.ts(3,8): error TS2882: Cannot find module or type declarations for side-effect import of './does-not-exist-either.js'.
==== sideEffectImports1.ts (3 errors) ====
import "does-not-exist";
~~~~~~~~~~~~~~~~
-!!! error TS2307: Cannot find module 'does-not-exist' or its corresponding type declarations.
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'does-not-exist'.
import "./does-not-exist-either";
~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! error TS2307: Cannot find module './does-not-exist-either' or its corresponding type declarations.
+!!! error TS2882: Cannot find module or type declarations for side-effect import of './does-not-exist-either'.
import "./does-not-exist-either.js";
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! error TS2307: Cannot find module './does-not-exist-either.js' or its corresponding type declarations.
+!!! error TS2882: Cannot find module or type declarations for side-effect import of './does-not-exist-either.js'.
\ No newline at end of file
diff --git a/tests/baselines/reference/systemModule9.errors.txt b/tests/baselines/reference/systemModule9.errors.txt
index be5991350e5de..ed3c9e0d6c8fe 100644
--- a/tests/baselines/reference/systemModule9.errors.txt
+++ b/tests/baselines/reference/systemModule9.errors.txt
@@ -1,12 +1,13 @@
systemModule9.ts(1,21): error TS2792: Cannot find module 'file1'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
systemModule9.ts(2,25): error TS2792: Cannot find module 'file2'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
systemModule9.ts(3,15): error TS2792: Cannot find module 'file3'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
+systemModule9.ts(4,8): error TS2882: Cannot find module or type declarations for side-effect import of 'file4'.
systemModule9.ts(5,25): error TS2792: Cannot find module 'file5'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
systemModule9.ts(6,22): error TS2792: Cannot find module 'file6'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
systemModule9.ts(16,15): error TS2792: Cannot find module 'file7'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
-==== systemModule9.ts (6 errors) ====
+==== systemModule9.ts (7 errors) ====
import * as ns from 'file1';
~~~~~~~
!!! error TS2792: Cannot find module 'file1'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
@@ -17,6 +18,8 @@ systemModule9.ts(16,15): error TS2792: Cannot find module 'file7'. Did you mean
~~~~~~~
!!! error TS2792: Cannot find module 'file3'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
import 'file4'
+ ~~~~~~~
+!!! error TS2882: Cannot find module or type declarations for side-effect import of 'file4'.
import e, * as ns2 from 'file5';
~~~~~~~
!!! error TS2792: Cannot find module 'file5'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?
diff --git a/tests/baselines/reference/tsc/commandLine/help-all.js b/tests/baselines/reference/tsc/commandLine/help-all.js
index 7617088f18818..ed000797a4a69 100644
--- a/tests/baselines/reference/tsc/commandLine/help-all.js
+++ b/tests/baselines/reference/tsc/commandLine/help-all.js
@@ -101,7 +101,7 @@ default: false
[94m--noUncheckedSideEffectImports[39m
Check side effect imports.
type: boolean
-default: false
+default: true
[94m--paths[39m
Specify a set of entries that re-map imports to additional lookup locations.
diff --git a/tests/baselines/reference/tscWatch/programUpdates/when-changing-`allowImportingTsExtensions`-of-config-file.js b/tests/baselines/reference/tscWatch/programUpdates/when-changing-`allowImportingTsExtensions`-of-config-file.js
index 8419ebddc7c22..ac614e8662464 100644
--- a/tests/baselines/reference/tscWatch/programUpdates/when-changing-`allowImportingTsExtensions`-of-config-file.js
+++ b/tests/baselines/reference/tscWatch/programUpdates/when-changing-`allowImportingTsExtensions`-of-config-file.js
@@ -47,7 +47,12 @@ DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_mod
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Type roots
DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/node_modules/@types 1 undefined Type roots
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/node_modules/@types 1 undefined Type roots
-[[90mHH:MM:SS AM[0m] Found 0 errors. Watching for file changes.
+[96mb.ts[0m:[93m1[0m:[93m8[0m - [91merror[0m[90m TS5097: [0mAn import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled.
+
+[7m1[0m import "./a.ts";
+[7m [0m [91m ~~~~~~~~[0m
+
+[[90mHH:MM:SS AM[0m] Found 1 error. Watching for file changes.
DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory
diff --git a/tests/baselines/reference/tscWatch/programUpdates/when-changing-noUncheckedSideEffectImports-of-config-file.js b/tests/baselines/reference/tscWatch/programUpdates/when-changing-noUncheckedSideEffectImports-of-config-file.js
index 2ffe72b516c56..15bf4b997073a 100644
--- a/tests/baselines/reference/tscWatch/programUpdates/when-changing-noUncheckedSideEffectImports-of-config-file.js
+++ b/tests/baselines/reference/tscWatch/programUpdates/when-changing-noUncheckedSideEffectImports-of-config-file.js
@@ -149,7 +149,7 @@ Synchronizing program
CreatingProgramWith::
roots: ["/user/username/projects/myproject/a.ts"]
options: {"noUncheckedSideEffectImports":true,"watch":true,"project":"/user/username/projects/myproject","extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
-[96ma.ts[0m:[93m1[0m:[93m8[0m - [91merror[0m[90m TS2307: [0mCannot find module 'does-not-exist' or its corresponding type declarations.
+[96ma.ts[0m:[93m1[0m:[93m8[0m - [91merror[0m[90m TS2882: [0mCannot find module or type declarations for side-effect import of 'does-not-exist'.
[7m1[0m import "does-not-exist";
[7m [0m [91m ~~~~~~~~~~~~~~~~[0m
diff --git a/tests/cases/compiler/ambientExportDefaultErrors.ts b/tests/cases/compiler/ambientExportDefaultErrors.ts
index 589af41333aed..dbc56e1651b04 100644
--- a/tests/cases/compiler/ambientExportDefaultErrors.ts
+++ b/tests/cases/compiler/ambientExportDefaultErrors.ts
@@ -1,4 +1,6 @@
// @filename: foo.d.ts
+// @noUncheckedSideEffectImports: false
+
export default 2 + 2;
export as namespace Foo;
diff --git a/tests/cases/compiler/moduleAugmentationGlobal5.ts b/tests/cases/compiler/moduleAugmentationGlobal5.ts
index cf59149a611c5..f0af540ff60b1 100644
--- a/tests/cases/compiler/moduleAugmentationGlobal5.ts
+++ b/tests/cases/compiler/moduleAugmentationGlobal5.ts
@@ -1,5 +1,6 @@
// @module: commonjs
// @declaration: true
+// @noUncheckedSideEffectImports: false
// @filename: f1.d.ts
declare module "A" {
global {
diff --git a/tests/cases/compiler/moduleResolutionWithExtensions_unexpected.ts b/tests/cases/compiler/moduleResolutionWithExtensions_unexpected.ts
index 3af02eabb7656..4f799e9f12c8e 100644
--- a/tests/cases/compiler/moduleResolutionWithExtensions_unexpected.ts
+++ b/tests/cases/compiler/moduleResolutionWithExtensions_unexpected.ts
@@ -1,5 +1,6 @@
// @noImplicitReferences: true
// @traceResolution: true
+// @noUncheckedSideEffectImports: false
// This tests that a package.json "main" with an unexpected extension is ignored.
// @Filename: /node_modules/normalize.css/normalize.css