@@ -2388,18 +2388,7 @@ namespace ts {
2388
2388
));
2389
2389
}
2390
2390
else {
2391
- if (moduleSymbol.exports && moduleSymbol.exports.has(node.symbol.escapedName)) {
2392
- error(
2393
- node.name,
2394
- Diagnostics.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead,
2395
- symbolToString(moduleSymbol),
2396
- symbolToString(node.symbol),
2397
- );
2398
- }
2399
- else {
2400
- error(node.name, Diagnostics.Module_0_has_no_default_export, symbolToString(moduleSymbol));
2401
- }
2402
-
2391
+ reportNonDefaultExport(moduleSymbol, node);
2403
2392
}
2404
2393
}
2405
2394
else if (hasSyntheticDefault) {
@@ -2413,6 +2402,30 @@ namespace ts {
2413
2402
}
2414
2403
}
2415
2404
2405
+ function reportNonDefaultExport(moduleSymbol: Symbol, node: ImportClause) {
2406
+ if (moduleSymbol.exports?.has(node.symbol.escapedName)) {
2407
+ error(
2408
+ node.name,
2409
+ Diagnostics.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead,
2410
+ symbolToString(moduleSymbol),
2411
+ symbolToString(node.symbol),
2412
+ );
2413
+ }
2414
+ else {
2415
+ const diagnostic = error(node.name, Diagnostics.Module_0_has_no_default_export, symbolToString(moduleSymbol));
2416
+ const exportStar = moduleSymbol.exports?.get(InternalSymbolName.ExportStar);
2417
+ if (exportStar) {
2418
+ const defaultExport = find(exportStar.declarations, decl => !!(
2419
+ isExportDeclaration(decl) && decl.moduleSpecifier &&
2420
+ resolveExternalModuleName(decl, decl.moduleSpecifier)?.exports?.has(InternalSymbolName.Default)
2421
+ ));
2422
+ if (defaultExport) {
2423
+ addRelatedInfo(diagnostic, createDiagnosticForNode(defaultExport, Diagnostics.export_Asterisk_does_not_re_export_a_default));
2424
+ }
2425
+ }
2426
+ }
2427
+ }
2428
+
2416
2429
function getTargetOfNamespaceImport(node: NamespaceImport, dontResolveAlias: boolean): Symbol | undefined {
2417
2430
const moduleSpecifier = node.parent.parent.moduleSpecifier;
2418
2431
const immediate = resolveExternalModuleName(node, moduleSpecifier);
0 commit comments