File tree 5 files changed +23
-4
lines changed
packages/language-core/lib/codegen/template
test-workspace/tsc/passedFixtures
5 files changed +23
-4
lines changed Original file line number Diff line number Diff line change @@ -242,6 +242,11 @@ export function createTemplateCodegenContext(options: Pick<TemplateCodegenOption
242
242
yield endOfLine ;
243
243
}
244
244
} ,
245
+ generateConditionGuards : function * ( ) {
246
+ for ( const condition of blockConditions ) {
247
+ yield `if (!${ condition } ) return${ endOfLine } ` ;
248
+ }
249
+ } ,
245
250
ignoreError : function * ( ) : Generator < Code > {
246
251
if ( ! ignoredError ) {
247
252
ignoredError = true ;
Original file line number Diff line number Diff line change @@ -109,12 +109,9 @@ export function* generateEventExpression(
109
109
if ( _isCompoundExpression ) {
110
110
yield `(...[$event]) => {${ newLine } ` ;
111
111
ctx . addLocalVariable ( '$event' ) ;
112
-
112
+ yield * ctx . generateConditionGuards ( ) ;
113
113
prefix = `` ;
114
114
suffix = `` ;
115
- for ( const blockCondition of ctx . blockConditions ) {
116
- prefix += `if (!${ blockCondition } ) return${ endOfLine } ` ;
117
- }
118
115
}
119
116
120
117
yield * generateInterpolation (
Original file line number Diff line number Diff line change 29
29
" ../vue3/#4822" ,
30
30
" ../vue3/#4826" ,
31
31
" ../vue3/#4828" ,
32
+ " ../vue3/#5225" ,
32
33
" ../vue3/attrs" ,
33
34
" ../vue3/components" ,
34
35
" ../vue3/defineEmits" ,
Original file line number Diff line number Diff line change
1
+ <script setup lang="ts">
2
+ defineModel <number >({ required: true });
3
+ </script >
Original file line number Diff line number Diff line change
1
+ <script setup lang="ts">
2
+ import Comp from ' ./comp.vue' ;
3
+
4
+ let foo! : {
5
+ bar? : number ;
6
+ };
7
+ </script >
8
+
9
+ <template >
10
+ <!-- @vue-expect-error -->
11
+ <Comp v-model =" foo.bar" />
12
+ <Comp v-if =" foo.bar" v-model =" foo.bar" />
13
+ </template >
You can’t perform that action at this time.
0 commit comments