Skip to content

Commit 06f6f02

Browse files
authored
fix(language-core): generate value instead of model name into tuple (#4892)
1 parent 9738d8a commit 06f6f02

File tree

3 files changed

+14
-11
lines changed

3 files changed

+14
-11
lines changed

packages/language-core/lib/codegen/script/scriptSetup.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ function* generateModelEmit(
464464
yield `type __VLS_ModelEmit = {${newLine}`;
465465
for (const defineModel of defineModels) {
466466
const [propName, localName] = getPropAndLocalName(scriptSetup, defineModel);
467-
yield `'update:${propName}': [${propName}:`;
467+
yield `'update:${propName}': [value:`;
468468
yield* generateDefinePropType(scriptSetup, propName, localName, defineModel);
469469
yield `]${endOfLine}`;
470470
}

packages/tsc/tests/__snapshots__/dts.spec.ts.snap

+10-10
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ type __VLS_PrettifyLocal<T> = {
9191
exports[`vue-tsc-dts > Input: generic/component.vue, Output: generic/component.vue.d.ts 1`] = `
9292
"declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
9393
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
94-
readonly "onUpdate:title"?: (title: string) => any;
94+
readonly "onUpdate:title"?: (value: string) => any;
9595
readonly onBar?: (data: number) => any;
9696
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:title" | "onBar"> & Partial<{}> & ({
9797
title?: string;
@@ -111,7 +111,7 @@ exports[`vue-tsc-dts > Input: generic/component.vue, Output: generic/component.v
111111
foo: number;
112112
}): any;
113113
};
114-
emit: ((e: "bar", data: number) => void) & ((evt: "update:title", title: string) => void);
114+
emit: ((e: "bar", data: number) => void) & ((evt: "update:title", value: string) => void);
115115
}>) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
116116
[key: string]: any;
117117
}> & {
@@ -127,7 +127,7 @@ type __VLS_PrettifyLocal<T> = {
127127
exports[`vue-tsc-dts > Input: generic/custom-extension-component.cext, Output: generic/custom-extension-component.cext.d.ts 1`] = `
128128
"declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
129129
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
130-
readonly "onUpdate:title"?: (title: string) => any;
130+
readonly "onUpdate:title"?: (value: string) => any;
131131
readonly onBar?: (data: number) => any;
132132
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:title" | "onBar"> & Partial<{}> & ({
133133
title?: string;
@@ -147,7 +147,7 @@ exports[`vue-tsc-dts > Input: generic/custom-extension-component.cext, Output: g
147147
foo: number;
148148
}): any;
149149
};
150-
emit: ((e: "bar", data: number) => void) & ((evt: "update:title", title: string) => void);
150+
emit: ((e: "bar", data: number) => void) & ((evt: "update:title", value: string) => void);
151151
}>) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
152152
[key: string]: any;
153153
}> & {
@@ -321,13 +321,13 @@ exports[`vue-tsc-dts > Input: reference-type-model/component.vue, Output: refere
321321
quxModifiers?: Record<'lazy' | 'trim', true>;
322322
};
323323
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_PublicProps>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
324-
"update:foo": (foo: number) => void;
325-
"update:bar": (bar: string[]) => void;
326-
"update:qux": (qux: string) => void;
324+
"update:foo": (value: number) => void;
325+
"update:bar": (value: string[]) => void;
326+
"update:qux": (value: string) => void;
327327
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_PublicProps>>> & Readonly<{
328-
"onUpdate:foo"?: (foo: number) => any;
329-
"onUpdate:bar"?: (bar: string[]) => any;
330-
"onUpdate:qux"?: (qux: string) => any;
328+
"onUpdate:foo"?: (value: number) => any;
329+
"onUpdate:bar"?: (value: string[]) => any;
330+
"onUpdate:qux"?: (value: string) => any;
331331
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
332332
export default _default;
333333
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<script setup lang="ts" generic="T">
2+
defineModel('hello-world');
3+
</script>

0 commit comments

Comments
 (0)