]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(runtime-core): keep options API typing intact when expose is used (#14118)
authorSerKo <serko.dev@gmail.com>
Thu, 20 Nov 2025 00:59:42 +0000 (08:59 +0800)
committerGitHub <noreply@github.com>
Thu, 20 Nov 2025 00:59:42 +0000 (08:59 +0800)
Fixed: #14117
Fixed: vuejs/language-tools#5069

packages-private/dts-test/defineComponent.test-d.tsx
packages/runtime-core/src/apiDefineComponent.ts
packages/runtime-core/src/componentOptions.ts

index 1967668dcebb854bb577485b09daf9c9573db5ea..9dc5bf871356cf7e920480dd58673bbffd574b6b 100644 (file)
@@ -2107,3 +2107,38 @@ defineComponent({
     expectType<string>(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'],
+})
index 68155e831a3fb6830ed74f918204c277eb1c4703..e83715f6a39b1545e97b866e06e98d77f3590fd7 100644 (file)
@@ -272,7 +272,7 @@ export function defineComponent<
         Slots,
         LocalComponents,
         Directives,
-        Exposed
+        string
       >
     >,
 ): DefineComponent<
index 35f2f0cfaf51f4e52b74624e8f745728941dc1ef..fc41b04a9d45f69e6542987d84d2421dbbf376b0 100644 (file)
@@ -1194,7 +1194,7 @@ export type ComponentOptionsWithoutProps<
       S,
       LC,
       Directives,
-      Exposed
+      string
     >
   >
 
@@ -1256,7 +1256,7 @@ export type ComponentOptionsWithArrayProps<
       S,
       LC,
       Directives,
-      Exposed
+      string
     >
   >