@@ -32,10 +32,16 @@ export function* generateComponent(
32
32
yield `setup() {${ newLine } ` ;
33
33
const returns : Code [ ] = [ ] ;
34
34
if ( ctx . bypassDefineComponent ) {
35
- yield * `const __VLS_returns = {${ newLine } ` ;
36
- yield * generateComponentSetupReturns ( scriptSetupRanges ) ;
37
- yield `}${ endOfLine } ` ;
38
- returns . push ( `typeof __VLS_returns` ) ;
35
+ // fill $props
36
+ if ( scriptSetupRanges . defineProps ) {
37
+ const name = scriptSetupRanges . defineProps . name ?? `__VLS_props` ;
38
+ // NOTE: defineProps is inaccurate for $props
39
+ returns . push ( `typeof ${ name } & { $props: Partial<typeof ${ name } > }` ) ;
40
+ }
41
+ // fill $emit
42
+ if ( scriptSetupRanges . defineEmits ) {
43
+ returns . push ( `{ $emit: typeof ${ scriptSetupRanges . defineEmits . name ?? '__VLS_emit' } }` ) ;
44
+ }
39
45
}
40
46
if ( scriptSetupRanges . defineExpose ) {
41
47
returns . push ( `typeof __VLS_exposed` ) ;
@@ -73,19 +79,6 @@ export function* generateComponent(
73
79
yield `})` ;
74
80
}
75
81
76
- export function * generateComponentSetupReturns ( scriptSetupRanges : ScriptSetupRanges ) : Generator < Code > {
77
- // fill $props
78
- if ( scriptSetupRanges . defineProps ) {
79
- // NOTE: defineProps is inaccurate for $props
80
- yield `$props: __VLS_makeOptional(${ scriptSetupRanges . defineProps . name ?? `__VLS_props` } ),${ newLine } ` ;
81
- yield `...${ scriptSetupRanges . defineProps . name ?? `__VLS_props` } ,${ newLine } ` ;
82
- }
83
- // fill $emit
84
- if ( scriptSetupRanges . defineEmits ) {
85
- yield `$emit: ${ scriptSetupRanges . defineEmits . name ?? '__VLS_emit' } ,${ newLine } ` ;
86
- }
87
- }
88
-
89
82
export function * generateEmitsOption (
90
83
options : ScriptCodegenOptions ,
91
84
scriptSetupRanges : ScriptSetupRanges ,
0 commit comments