diff --git a/src/services/refactors/moveToFile.ts b/src/services/refactors/moveToFile.ts index 6245fe4903dcc..18fd421d6d0ee 100644 --- a/src/services/refactors/moveToFile.ts +++ b/src/services/refactors/moveToFile.ts @@ -886,7 +886,7 @@ export function getUsageInfo(oldFile: SourceFile, toMove: readonly Statement[], const unusedImportsFromOldFile = new Set(); for (const statement of toMove) { forEachReference(statement, checker, enclosingRange, (symbol, isValidTypeOnlyUseSite) => { - if (!symbol.declarations) { + if (!some(symbol.declarations)) { return; } if (existingTargetLocals.has(skipAlias(symbol, checker))) { diff --git a/tests/cases/fourslash/moveToFile_undefined.ts b/tests/cases/fourslash/moveToFile_undefined.ts new file mode 100644 index 0000000000000..42ce03ec5abfe --- /dev/null +++ b/tests/cases/fourslash/moveToFile_undefined.ts @@ -0,0 +1,15 @@ +/// + +// @module: esnext +// @moduleResolution: bundler + +// @Filename: /orig.ts +//// [|export const variable = undefined;|] + +verify.moveToFile({ + newFileContents: { + "/orig.ts": "", + "/new.ts": "export const variable = undefined;\n" + }, + interactiveRefactorArguments: { targetFile: "/new.ts" }, +});