From: Tycho Date: Fri, 11 Oct 2024 02:30:09 +0000 (+0800) Subject: fix(types): ensure `this.$props` type does not include `string` (#12123) X-Git-Tag: v3.5.12~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=704173e24276706de672cca6c9507e4dd9651197;p=thirdparty%2Fvuejs%2Fcore.git fix(types): ensure `this.$props` type does not include `string` (#12123) close #12122 --- diff --git a/packages-private/dts-test/defineComponent.test-d.tsx b/packages-private/dts-test/defineComponent.test-d.tsx index 9b4c184719..fda3ca4856 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 9ae6b41a4d..2ce870f014 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,