From f15debc01acb22d23f5acee97e6f02db88cef11a Mon Sep 17 00:00:00 2001 From: zqran <215244947@qq.com> Date: Fri, 10 Nov 2023 15:20:02 +0800 Subject: [PATCH] fix(types): return type of withDefaults should be readonly (#8601) --- packages/dts-test/setupHelpers.test-d.ts | 5 +++++ packages/runtime-core/src/apiSetupHelpers.ts | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/dts-test/setupHelpers.test-d.ts b/packages/dts-test/setupHelpers.test-d.ts index 838e376da..51f95c009 100644 --- a/packages/dts-test/setupHelpers.test-d.ts +++ b/packages/dts-test/setupHelpers.test-d.ts @@ -110,6 +110,7 @@ describe('defineProps w/ generic type declaration + withDefaults', (res.generic1) expectType<{ x: T }>(res.generic2) diff --git a/packages/runtime-core/src/apiSetupHelpers.ts b/packages/runtime-core/src/apiSetupHelpers.ts index cff0c6511..509c280d6 100644 --- a/packages/runtime-core/src/apiSetupHelpers.ts +++ b/packages/runtime-core/src/apiSetupHelpers.ts @@ -298,8 +298,8 @@ type PropsWithDefaults< T, Defaults extends InferDefaults, BKeys extends keyof T -> = Omit & { - [K in keyof Defaults]-?: K extends keyof T +> = Readonly> & { + readonly [K in keyof Defaults]-?: K extends keyof T ? Defaults[K] extends undefined ? T[K] : NotUndefined