diff --git a/packages-private/dts-test/defineComponent.test-d.tsx b/packages-private/dts-test/defineComponent.test-d.tsx index fda3ca4856c..ffd968c4fa9 100644 --- a/packages-private/dts-test/defineComponent.test-d.tsx +++ b/packages-private/dts-test/defineComponent.test-d.tsx @@ -1620,7 +1620,7 @@ describe('expose typing', () => { some: String, }, data() { - return { a: 1, b: '2', c: 1 } + return { c: 1, d: '2', e: 1 } }, }) @@ -1630,11 +1630,14 @@ describe('expose typing', () => { // internal should still be exposed vm.$props - expectType(vm.a) - expectType(vm.b) + expectType(vm.c) + expectType(vm.d) + expectType(vm.e) // @ts-expect-error shouldn't be exposed - vm.c + vm.a + // @ts-expect-error shouldn't be exposed + vm.b }) import type { diff --git a/packages/runtime-core/src/componentPublicInstance.ts b/packages/runtime-core/src/componentPublicInstance.ts index e9e7770ebd9..e7aa7adf0d3 100644 --- a/packages/runtime-core/src/componentPublicInstance.ts +++ b/packages/runtime-core/src/componentPublicInstance.ts @@ -285,7 +285,7 @@ export type CreateComponentPublicInstanceWithMixins< export type ExposedKeys< T, Exposed extends string & keyof T, -> = '' extends Exposed ? T : Pick +> = Exposed extends string ? T : Pick // public properties exposed on the proxy, which is used as the render context // in templates (as `this` in the render option)