From 8f82f238463160284e504d1751d61b72dabb395e Mon Sep 17 00:00:00 2001 From: SerKo Date: Thu, 20 Nov 2025 08:59:42 +0800 Subject: [PATCH] fix(runtime-core): keep options API typing intact when expose is used (#14118) Fixed: #14117 Fixed: vuejs/language-tools#5069 --- .../dts-test/defineComponent.test-d.tsx | 35 +++++++++++++++++++ .../runtime-core/src/apiDefineComponent.ts | 2 +- packages/runtime-core/src/componentOptions.ts | 4 +-- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/packages-private/dts-test/defineComponent.test-d.tsx b/packages-private/dts-test/defineComponent.test-d.tsx index 1967668dce..9dc5bf8713 100644 --- a/packages-private/dts-test/defineComponent.test-d.tsx +++ b/packages-private/dts-test/defineComponent.test-d.tsx @@ -2107,3 +2107,38 @@ defineComponent({ expectType(this.$props) }, }) + +// #14117 +defineComponent({ + setup() { + const setup1 = ref('setup1') + const setup2 = ref('setup2') + return { setup1, setup2 } + }, + data() { + return { + data1: 1, + } + }, + props: { + props1: { + type: String, + }, + }, + methods: { + methods1() { + return `methods1` + }, + }, + computed: { + computed1() { + this.setup1 + this.setup2 + this.data1 + this.props1 + this.methods1() + return `computed1` + }, + }, + expose: ['setup1'], +}) diff --git a/packages/runtime-core/src/apiDefineComponent.ts b/packages/runtime-core/src/apiDefineComponent.ts index 68155e831a..e83715f6a3 100644 --- a/packages/runtime-core/src/apiDefineComponent.ts +++ b/packages/runtime-core/src/apiDefineComponent.ts @@ -272,7 +272,7 @@ export function defineComponent< Slots, LocalComponents, Directives, - Exposed + string > >, ): DefineComponent< diff --git a/packages/runtime-core/src/componentOptions.ts b/packages/runtime-core/src/componentOptions.ts index 35f2f0cfaf..fc41b04a9d 100644 --- a/packages/runtime-core/src/componentOptions.ts +++ b/packages/runtime-core/src/componentOptions.ts @@ -1194,7 +1194,7 @@ export type ComponentOptionsWithoutProps< S, LC, Directives, - Exposed + string > > @@ -1256,7 +1256,7 @@ export type ComponentOptionsWithArrayProps< S, LC, Directives, - Exposed + string > > -- 2.47.3