diff --git a/packages/compiler-sfc/src/compileScript.ts b/packages/compiler-sfc/src/compileScript.ts index d8d82f64b..f766ab536 100644 --- a/packages/compiler-sfc/src/compileScript.ts +++ b/packages/compiler-sfc/src/compileScript.ts @@ -344,10 +344,17 @@ export function compileScriptSetup( ) { const index = node.id.start! + startOffset s.overwrite(index, index + emitVar.length, '__emit__') - s.move(start, end, 0) emitType = `typeof __emit__` extractEmits(node, typeDeclaredEmits) } + + // move all type declarations to outer scope + if ( + node.type.startsWith('TS') || + (node.type === 'ExportNamedDeclaration' && node.exportKind === 'type') + ) { + s.move(start, end, 0) + } } // check default export to make sure it doesn't reference setup scope