@@ -436,7 +436,9 @@ namespace ts.codefix {
436
436
437
437
/**
438
438
* Convert `import x = require("x").`
439
- * Also converts uses like `x.y()` to `y()` and uses a named import.
439
+ * Also:
440
+ * - Convert `x.default()` to `x()` to handle ES6 default export
441
+ * - Converts uses like `x.y()` to `y()` and uses a named import.
440
442
*/
441
443
function convertSingleIdentifierImport ( name : Identifier , moduleSpecifier : StringLiteralLike , checker : TypeChecker , identifiers : Identifiers , quotePreference : QuotePreference ) : ConvertedImports {
442
444
const nameSymbol = checker . getSymbolAtLocation ( name ) ;
@@ -454,15 +456,23 @@ namespace ts.codefix {
454
456
455
457
const { parent } = use ;
456
458
if ( isPropertyAccessExpression ( parent ) ) {
457
- const { expression , name : { text : propertyName } } = parent ;
458
- Debug . assert ( expression === use , "Didn't expect expression === use" ) ; // Else shouldn't have been in `collectIdentifiers`
459
- let idName = namedBindingsNames . get ( propertyName ) ;
460
- if ( idName === undefined ) {
461
- idName = makeUniqueName ( propertyName , identifiers ) ;
462
- namedBindingsNames . set ( propertyName , idName ) ;
459
+ const { name : { text : propertyName } } = parent ;
460
+ if ( propertyName === "default" ) {
461
+ needDefaultImport = true ;
462
+
463
+ const importDefaultName = use . getText ( ) ;
464
+ ( useSitesToUnqualify ??= new Map ( ) ) . set ( parent , factory . createIdentifier ( importDefaultName ) ) ;
463
465
}
466
+ else {
467
+ Debug . assert ( parent . expression === use , "Didn't expect expression === use" ) ; // Else shouldn't have been in `collectIdentifiers`
468
+ let idName = namedBindingsNames . get ( propertyName ) ;
469
+ if ( idName === undefined ) {
470
+ idName = makeUniqueName ( propertyName , identifiers ) ;
471
+ namedBindingsNames . set ( propertyName , idName ) ;
472
+ }
464
473
465
- ( useSitesToUnqualify ??= new Map ( ) ) . set ( parent , factory . createIdentifier ( idName ) ) ;
474
+ ( useSitesToUnqualify ??= new Map ( ) ) . set ( parent , factory . createIdentifier ( idName ) ) ;
475
+ }
466
476
}
467
477
else {
468
478
needDefaultImport = true ;
0 commit comments