Skip to content

Commit 02af955

Browse files
authored
fix(language-core): generate defineModel emits type on-demand (#4052)
1 parent 618a42c commit 02af955

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

packages/language-core/lib/generators/script.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -872,12 +872,14 @@ type __VLS_PrettifyGlobal<T> = { [K in keyof T]: T[K]; } & {};
872872
}
873873
yield _(`},\n`);
874874
}
875-
yield _(`emits: ({} as __VLS_NormalizeEmits<typeof __VLS_modelEmitsType`);
876-
if (ranges.emits.define) {
877-
yield _(` & typeof `);
878-
yield _(ranges.emits.name ?? '__VLS_emit');
875+
if (ranges.defineProp.filter(p => p.isModel).length || ranges.emits.define) {
876+
yield _(`emits: ({} as __VLS_NormalizeEmits<typeof __VLS_modelEmitsType`);
877+
if (ranges.emits.define) {
878+
yield _(` & typeof `);
879+
yield _(ranges.emits.name ?? '__VLS_emit');
880+
}
881+
yield _(`>),\n`);
879882
}
880-
yield _(`>),\n`);
881883
}
882884
if (script && scriptRanges?.exportDefault?.args) {
883885
yield _(generateSourceCode(script, scriptRanges.exportDefault.args.start + 1, scriptRanges.exportDefault.args.end - 1));
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<script setup lang="ts"></script>
2+
3+
<script lang="ts">
4+
import { defineComponent } from 'vue';
5+
6+
export default defineComponent({
7+
emits: ['hasFart'],
8+
});
9+
</script>

0 commit comments

Comments
 (0)