@@ -122,20 +122,44 @@ function* generateSetupFunction(
122122 ctx . scriptSetupGeneratedOffset = options . getGeneratedLength ( ) - scriptSetupRanges . importSectionEndOffset ;
123123
124124 let setupCodeModifies : [ Code [ ] , number , number ] [ ] = [ ] ;
125- if ( scriptSetupRanges . props . define && ! scriptSetupRanges . props . name ) {
126- const range = scriptSetupRanges . props . withDefaults ?? scriptSetupRanges . props . define ;
125+ const propsRange = scriptSetupRanges . props . withDefaults ?? scriptSetupRanges . props . define ;
126+ if ( propsRange && scriptSetupRanges . props . define ) {
127127 const statement = scriptSetupRanges . props . define . statement ;
128- if ( statement . start === range . start && statement . end === range . end ) {
129- setupCodeModifies . push ( [ [ `const __VLS_props = ` ] , range . start , range . start ] ) ;
130- }
131- else {
128+ if ( scriptSetupRanges . props . define . typeArg ) {
132129 setupCodeModifies . push ( [ [
133- `const __VLS_props = ` ,
134- generateSfcBlockSection ( scriptSetup , range . start , range . end , codeFeatures . all ) ,
135- `${ endOfLine } ` ,
136- generateSfcBlockSection ( scriptSetup , statement . start , range . start , codeFeatures . all ) ,
137- `__VLS_props` ,
138- ] , statement . start , range . end ] ) ;
130+ `let __VLS_typeProps!: ` ,
131+ generateSfcBlockSection ( scriptSetup , scriptSetupRanges . props . define . typeArg . start , scriptSetupRanges . props . define . typeArg . end , codeFeatures . all ) ,
132+ endOfLine ,
133+ ] , statement . start , statement . start ] ) ;
134+ setupCodeModifies . push ( [ [ `typeof __VLS_typeProps` ] , scriptSetupRanges . props . define . typeArg . start , scriptSetupRanges . props . define . typeArg . end ] ) ;
135+ }
136+ if ( ! scriptSetupRanges . props . name ) {
137+ if ( statement . start === propsRange . start && statement . end === propsRange . end ) {
138+ setupCodeModifies . push ( [ [ `const __VLS_props = ` ] , propsRange . start , propsRange . start ] ) ;
139+ }
140+ else {
141+ if ( scriptSetupRanges . props . define . typeArg ) {
142+ setupCodeModifies . push ( [ [
143+ `const __VLS_props = ` ,
144+ generateSfcBlockSection ( scriptSetup , propsRange . start , scriptSetupRanges . props . define . typeArg . start , codeFeatures . all ) ,
145+ ] , statement . start , scriptSetupRanges . props . define . typeArg . start ] ) ;
146+ setupCodeModifies . push ( [ [
147+ generateSfcBlockSection ( scriptSetup , scriptSetupRanges . props . define . typeArg . end , propsRange . end , codeFeatures . all ) ,
148+ `${ endOfLine } ` ,
149+ generateSfcBlockSection ( scriptSetup , statement . start , propsRange . start , codeFeatures . all ) ,
150+ `__VLS_props` ,
151+ ] , scriptSetupRanges . props . define . typeArg . end , propsRange . end ] ) ;
152+ }
153+ else {
154+ setupCodeModifies . push ( [ [
155+ `const __VLS_props = ` ,
156+ generateSfcBlockSection ( scriptSetup , propsRange . start , propsRange . end , codeFeatures . all ) ,
157+ `${ endOfLine } ` ,
158+ generateSfcBlockSection ( scriptSetup , statement . start , propsRange . start , codeFeatures . all ) ,
159+ `__VLS_props` ,
160+ ] , statement . start , propsRange . end ] ) ;
161+ }
162+ }
139163 }
140164 }
141165 if ( scriptSetupRanges . slots . define && ! scriptSetupRanges . slots . name ) {
@@ -338,7 +362,7 @@ function* generateComponentProps(
338362 yield ` & ` ;
339363 }
340364 ctx . generatedPropsType = true ;
341- yield generateSfcBlockSection ( scriptSetup , scriptSetupRanges . props . define . typeArg . start , scriptSetupRanges . props . define . typeArg . end , codeFeatures . all ) ;
365+ yield `typeof __VLS_typeProps` ;
342366 }
343367 if ( ! ctx . generatedPropsType ) {
344368 yield `{}` ;
0 commit comments