@@ -436,7 +436,9 @@ namespace ts.codefix {
436436
437437 /**
438438 * 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.
440442 */
441443 function convertSingleIdentifierImport ( name : Identifier , moduleSpecifier : StringLiteralLike , checker : TypeChecker , identifiers : Identifiers , quotePreference : QuotePreference ) : ConvertedImports {
442444 const nameSymbol = checker . getSymbolAtLocation ( name ) ;
@@ -454,15 +456,23 @@ namespace ts.codefix {
454456
455457 const { parent } = use ;
456458 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 ) ) ;
463465 }
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+ }
464473
465- ( useSitesToUnqualify ??= new Map ( ) ) . set ( parent , factory . createIdentifier ( idName ) ) ;
474+ ( useSitesToUnqualify ??= new Map ( ) ) . set ( parent , factory . createIdentifier ( idName ) ) ;
475+ }
466476 }
467477 else {
468478 needDefaultImport = true ;
0 commit comments