From b10b81e58753540d27ed940a80b000777ccaabb1 Mon Sep 17 00:00:00 2001 From: tycho Date: Mon, 7 Oct 2024 23:07:26 +0800 Subject: [PATCH] fix(types): ensure `this.$props` type does not include `string` --- packages-private/dts-test/defineComponent.test-d.tsx | 10 ++++++++++ packages/runtime-core/src/apiDefineComponent.ts | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages-private/dts-test/defineComponent.test-d.tsx b/packages-private/dts-test/defineComponent.test-d.tsx index 9b4c184719c..fda3ca4856c 100644 --- a/packages-private/dts-test/defineComponent.test-d.tsx +++ b/packages-private/dts-test/defineComponent.test-d.tsx @@ -2068,3 +2068,13 @@ expectString(instance.actionText) // public prop on $props should be optional // @ts-expect-error expectString(instance.$props.actionText) + +// #12122 +defineComponent({ + props: { foo: String }, + render() { + expectType<{ readonly foo?: string }>(this.$props) + // @ts-expect-error + expectType(this.$props) + }, +}) diff --git a/packages/runtime-core/src/apiDefineComponent.ts b/packages/runtime-core/src/apiDefineComponent.ts index 9ae6b41a4da..2ce870f0141 100644 --- a/packages/runtime-core/src/apiDefineComponent.ts +++ b/packages/runtime-core/src/apiDefineComponent.ts @@ -265,7 +265,7 @@ export function defineComponent< Mixin, Extends, ResolvedEmits, - RuntimeEmitsKeys, + {}, {}, false, InjectOptions,