diff --git a/src/services/refactors/moveToNewFile.ts b/src/services/refactors/moveToNewFile.ts index f762111174d..f283fd5794f 100644 --- a/src/services/refactors/moveToNewFile.ts +++ b/src/services/refactors/moveToNewFile.ts @@ -762,7 +762,7 @@ function filterImport(i: SupportedImport, moduleSpecifier: StringLiteralLike, ke const defaultImport = clause.name && keep(clause.name) ? clause.name : undefined; const namedBindings = clause.namedBindings && filterNamedBindings(clause.namedBindings, keep); return defaultImport || namedBindings - ? factory.createImportDeclaration(/*modifiers*/ undefined, factory.createImportClause(/*isTypeOnly*/ false, defaultImport, namedBindings), moduleSpecifier, /*assertClause*/ undefined) + ? factory.createImportDeclaration(/*modifiers*/ undefined, factory.createImportClause(clause.isTypeOnly, defaultImport, namedBindings), moduleSpecifier, /*assertClause*/ undefined) : undefined; } case SyntaxKind.ImportEqualsDeclaration: diff --git a/tests/cases/fourslash/moveToNewFile_typeImport1.ts b/tests/cases/fourslash/moveToNewFile_typeImport1.ts new file mode 100644 index 00000000000..e167320e6aa --- /dev/null +++ b/tests/cases/fourslash/moveToNewFile_typeImport1.ts @@ -0,0 +1,21 @@ +/// + +// @filename: /a.ts +////export interface A { +//// x: number; +////} + +// @Filename: /b.ts +////import type { A } from "./a"; +////[|function f(a: A) {}|] + +verify.moveToNewFile({ + newFileContents: { + "/b.ts": "", + "/f.ts": +`import type { A } from "./a"; + +function f(a: A) { } +`, + }, +}); diff --git a/tests/cases/fourslash/moveToNewFile_typeImport2.ts b/tests/cases/fourslash/moveToNewFile_typeImport2.ts new file mode 100644 index 00000000000..f916330c123 --- /dev/null +++ b/tests/cases/fourslash/moveToNewFile_typeImport2.ts @@ -0,0 +1,21 @@ +/// + +// @filename: /a.ts +////export interface A { +//// x: number; +////} + +// @Filename: /b.ts +////import { type A } from "./a"; +////[|function f(a: A) {}|] + +verify.moveToNewFile({ + newFileContents: { + "/b.ts": "", + "/f.ts": +`import { type A } from "./a"; + +function f(a: A) { } +`, + }, +});