diff --git a/src/services/codefixes/importFixes.ts b/src/services/codefixes/importFixes.ts index 8006d1a0cfd04..5f1754c3036a9 100644 --- a/src/services/codefixes/importFixes.ts +++ b/src/services/codefixes/importFixes.ts @@ -445,9 +445,12 @@ namespace ts.codefix { const aliased = checker.getImmediateAliasedSymbol(defaultExport); return aliased && getDefaultExportInfoWorker(aliased, Debug.assertDefined(aliased.parent), checker, compilerOptions); } - else { - return { symbolForMeaning: defaultExport, name: moduleSymbolToValidIdentifier(moduleSymbol, compilerOptions.target!) }; + + if (defaultExport.escapedName !== InternalSymbolName.Default && + defaultExport.escapedName !== InternalSymbolName.ExportEquals) { + return { symbolForMeaning: defaultExport, name: defaultExport.getName() }; } + return { symbolForMeaning: defaultExport, name: moduleSymbolToValidIdentifier(moduleSymbol, compilerOptions.target!) }; } function getNameForExportDefault(symbol: Symbol): string | undefined { diff --git a/tests/cases/fourslash/completionsImport_default_symbolName.ts b/tests/cases/fourslash/completionsImport_default_symbolName.ts new file mode 100644 index 0000000000000..0ede7a1673a85 --- /dev/null +++ b/tests/cases/fourslash/completionsImport_default_symbolName.ts @@ -0,0 +1,44 @@ +/// + +// @module: commonjs + +// @Filename: /node_modules/@types/range-parser/index.d.ts +////declare function RangeParser(): string; +////declare namespace RangeParser { +//// interface Options { +//// combine?: boolean; +//// } +////} +////export = RangeParser; + +// @Filename: /b.ts +////R/*0*/ + +verify.completions( + { + marker: "0", + includes: { + name: "RangeParser", + kind: "function", + kindModifiers: "declare", + source: "/node_modules/@types/range-parser/index", + sourceDisplay: "range-parser", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + text: `namespace RangeParser +function RangeParser(): string` + }, + preferences: { + includeCompletionsForModuleExports: true + } + }, +); + +verify.applyCodeActionFromCompletion("0", { + name: "RangeParser", + source: "/node_modules/@types/range-parser/index", + description: `Import 'RangeParser' from module "range-parser"`, + newFileContent: `import RangeParser = require("range-parser"); + +R`, +});