Vue version
3.5.26
Link to minimal reproduction
https://stackblitz.com/edit/vue3-vite-typescript-starter-pp65cmc9?file=src%2Fcomponents%2FHelloWorld.vue,src%2FApp.vue,src%2Fcomponents%2FCounter.vue,tsconfig.json,package.json
Steps to reproduce
When using defineEmits in combination with defineModel in a Vue 3 component with the old syntax for emitted events, TypeScript compilation performance degrades significantly.
Steps to Reproduce:
Create a component with defineEmits and defineModel.
Use the old emit syntax for event typing, e.g.
defineEmits<{ (e: 'next', value: void): void }>()
Run vue-tsc --noEmit
What is expected?
Same performance independent of the syntax.
What is actually happening?
vue-tsc takes up to 10 times longer when using the old syntax.
System Info
Any additional comments?
No response
Vue version
3.5.26
Link to minimal reproduction
https://stackblitz.com/edit/vue3-vite-typescript-starter-pp65cmc9?file=src%2Fcomponents%2FHelloWorld.vue,src%2FApp.vue,src%2Fcomponents%2FCounter.vue,tsconfig.json,package.json
Steps to reproduce
When using defineEmits in combination with defineModel in a Vue 3 component with the old syntax for emitted events, TypeScript compilation performance degrades significantly.
Steps to Reproduce:
Create a component with
defineEmitsanddefineModel.Use the old emit syntax for event typing, e.g.
defineEmits<{ (e: 'next', value: void): void }>()
Run
vue-tsc --noEmitWhat is expected?
Same performance independent of the syntax.
What is actually happening?
vue-tsc takes up to 10 times longer when using the old syntax.
System Info
Any additional comments?
No response