diff --git a/src/compiler/moduleNameResolver.ts b/src/compiler/moduleNameResolver.ts index 9dfb79bda1e..bc46ffb0260 100644 --- a/src/compiler/moduleNameResolver.ts +++ b/src/compiler/moduleNameResolver.ts @@ -1804,6 +1804,7 @@ function nodeModuleNameResolverWorker( const failedLookupLocations: string[] = []; const affectingLocations: string[] = []; const moduleResolution = getEmitModuleResolutionKind(compilerOptions); + const originalConditions = conditions; conditions ??= getConditions( compilerOptions, moduleResolution === ModuleResolutionKind.Bundler || moduleResolution === ModuleResolutionKind.Node10 @@ -1866,6 +1867,20 @@ function nodeModuleNameResolverWorker( } } + if (!compilerOptions.noDtsResolution && result?.value?.isExternalLibraryImport && result.value.resolved.extension === Extension.Dts) { + resolveModuleName( + moduleName, + combinePaths(containingDirectory, "__noDtsResolution__.ts"), + { ...compilerOptions, noDtsResolution: true }, + host, + cache, + redirectedReference, + originalConditions + ? (features & NodeResolutionFeatures.EsmMode ? ModuleKind.ESNext : ModuleKind.CommonJS) + : undefined, + ); + } + return createResolvedModuleWithFailedLookupLocationsHandlingSymlink( moduleName, result?.value?.resolved,