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,