diff --git a/src/services/codefixes/importFixes.ts b/src/services/codefixes/importFixes.ts
index 065d4112d7d..407903390ef 100644
--- a/src/services/codefixes/importFixes.ts
+++ b/src/services/codefixes/importFixes.ts
@@ -622,7 +622,13 @@ namespace ts.codefix {
if (defaultExport.flags & SymbolFlags.Alias) {
const aliased = checker.getImmediateAliasedSymbol(defaultExport);
- return aliased && getDefaultExportInfoWorker(aliased, Debug.checkDefined(aliased.parent, "Alias targets of default exports must have a parent"), checker, compilerOptions);
+ if (aliased && aliased.parent) {
+ // - `aliased` will be undefined if the module is exporting an unresolvable name,
+ // but we can still offer completions for it.
+ // - `aliased.parent` will be undefined if the module is exporting `globalThis.something`,
+ // or another expression that resolves to a global.
+ return getDefaultExportInfoWorker(aliased, aliased.parent, checker, compilerOptions);
+ }
}
if (defaultExport.escapedName !== InternalSymbolName.Default &&
diff --git a/tests/cases/fourslash/importNameCodeFixDefaultExport6.ts b/tests/cases/fourslash/importNameCodeFixDefaultExport6.ts
new file mode 100644
index 00000000000..2dcea116f59
--- /dev/null
+++ b/tests/cases/fourslash/importNameCodeFixDefaultExport6.ts
@@ -0,0 +1,17 @@
+///
+
+// @Filename: /a.ts
+//// export default Math.foo;
+
+// @Filename: /index.ts
+//// a/**/
+
+verify.applyCodeActionFromCompletion("", {
+ name: "a",
+ source: "/a",
+ description: `Import default 'a' from module "./a"`,
+ newFileContent: `import a from "./a";\n\na`,
+ preferences: {
+ includeCompletionsForModuleExports: true
+ }
+});
diff --git a/tests/cases/fourslash/importNameCodeFixDefaultExport7.ts b/tests/cases/fourslash/importNameCodeFixDefaultExport7.ts
new file mode 100644
index 00000000000..05311abba2e
--- /dev/null
+++ b/tests/cases/fourslash/importNameCodeFixDefaultExport7.ts
@@ -0,0 +1,14 @@
+///
+
+// @lib: dom
+
+// @Filename: foo.ts
+//// export default globalThis.localStorage;
+
+// @Filename: index.ts
+//// foo/**/
+
+goTo.marker("");
+verify.importFixAtPosition([`import foo from "./foo";
+
+foo`]);