diff --git a/packages/language-core/lib/codegen/globalTypes.ts b/packages/language-core/lib/codegen/globalTypes.ts index 884c096ef9..03f5911441 100644 --- a/packages/language-core/lib/codegen/globalTypes.ts +++ b/packages/language-core/lib/codegen/globalTypes.ts @@ -140,7 +140,7 @@ export function generateGlobalTypes({ type __VLS_ResolveDirectives = { [K in Exclude & string as \`v\${Capitalize}\`]: T[K]; }; - type __VLS_PrettifyGlobal = { [K in keyof T]: T[K]; } & {}; + type __VLS_PrettifyGlobal = { [K in keyof T as K]: T[K]; } & {}; type __VLS_UseTemplateRef = Readonly>; function __VLS_getVForSourceType>(source: T): [ diff --git a/packages/language-core/lib/codegen/localTypes.ts b/packages/language-core/lib/codegen/localTypes.ts index 8a6dde6f5b..5fb87282af 100644 --- a/packages/language-core/lib/codegen/localTypes.ts +++ b/packages/language-core/lib/codegen/localTypes.ts @@ -24,7 +24,7 @@ type __VLS_WithDefaults = { ); const PrettifyLocal = defineHelper( `__VLS_PrettifyLocal`, - () => `type __VLS_PrettifyLocal = { [K in keyof T]: T[K]; } & {}${endOfLine}`, + () => `type __VLS_PrettifyLocal = { [K in keyof T as K]: T[K]; } & {}${endOfLine}` ); const WithSlots = defineHelper( `__VLS_WithSlots`, diff --git a/packages/tsc/tests/__snapshots__/dts.spec.ts.snap b/packages/tsc/tests/__snapshots__/dts.spec.ts.snap index 1d724efff7..7629be1570 100644 --- a/packages/tsc/tests/__snapshots__/dts.spec.ts.snap +++ b/packages/tsc/tests/__snapshots__/dts.spec.ts.snap @@ -22,7 +22,7 @@ declare const _default: (__VLS_props: NonNullable = { - [K in keyof T]: T[K]; + [K in keyof T as K]: T[K]; } & {}; " `; @@ -104,7 +104,7 @@ exports[`vue-tsc-dts > Input: generic/component.vue, Output: generic/component.v }; export default _default; type __VLS_PrettifyLocal = { - [K in keyof T]: T[K]; + [K in keyof T as K]: T[K]; } & {}; " `; @@ -134,7 +134,7 @@ exports[`vue-tsc-dts > Input: generic/custom-extension-component.cext, Output: g }; export default _default; type __VLS_PrettifyLocal = { - [K in keyof T]: T[K]; + [K in keyof T as K]: T[K]; } & {}; " `; diff --git a/test-workspace/tsc/passedFixtures/vue3/#5159/child.vue b/test-workspace/tsc/passedFixtures/vue3/#5159/child.vue new file mode 100644 index 0000000000..b7dfe5cac7 --- /dev/null +++ b/test-workspace/tsc/passedFixtures/vue3/#5159/child.vue @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/test-workspace/tsc/passedFixtures/vue3/#5159/main.vue b/test-workspace/tsc/passedFixtures/vue3/#5159/main.vue new file mode 100644 index 0000000000..7b05a6b620 --- /dev/null +++ b/test-workspace/tsc/passedFixtures/vue3/#5159/main.vue @@ -0,0 +1,7 @@ + + +