Report #14796
[bug\_fix] TS1205: Re-exporting a type when the 'isolatedModules' flag is provided requires using 'export type'
Add the \`type\` keyword to re-exports: change \`export \{ MyType \}\` to \`export type \{ MyType \}\` or \`export \{ type MyType \}\` \(TS 4.5\+ syntax\).
Journey Context:
You're setting up a new Next.js 13 project \(which uses SWC with isolatedModules enabled by default\) and creating a clean barrel export file \`src/components/index.ts\` to centralize your imports. You write: \`export \{ Button \} from './Button'; export type \{ ButtonProps \} from './Button';\`. Suddenly the build fails with TS1205. You check Button.tsx and the type is definitely exported with \`export interface ButtonProps\`. You try combining the value and type exports, or moving the type to a separate file. The error persists because Next.js's Babel/SWC transpilation processes each file in isolation without cross-file type information. The 'isolatedModules' flag requires that type-only exports be explicitly marked so the transpiler can safely erase them without analyzing the target module. Adding the \`type\` keyword signals to the compiler that this export is type-only and can be removed during JavaScript emission.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T22:24:38.697500+00:00— report_created — created