Skip to content

Commit f15debc

Browse files
authoredNov 10, 2023
fix(types): return type of withDefaults should be readonly (#8601)
1 parent 46e3374 commit f15debc

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed
 

‎packages/dts-test/setupHelpers.test-d.ts

+5
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ describe('defineProps w/ generic type declaration + withDefaults', <T extends
110110
defineProps<{
111111
n?: number
112112
bool?: boolean
113+
s?: string
113114

114115
generic1?: T[] | { x: T }
115116
generic2?: { x: T }
@@ -128,6 +129,10 @@ describe('defineProps w/ generic type declaration + withDefaults', <T extends
128129
)
129130

130131
res.n + 1
132+
// @ts-expect-error should be readonly
133+
res.n++
134+
// @ts-expect-error should be readonly
135+
res.s = ''
131136

132137
expectType<T[] | { x: T }>(res.generic1)
133138
expectType<{ x: T }>(res.generic2)

‎packages/runtime-core/src/apiSetupHelpers.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -298,8 +298,8 @@ type PropsWithDefaults<
298298
T,
299299
Defaults extends InferDefaults<T>,
300300
BKeys extends keyof T
301-
> = Omit<T, keyof Defaults> & {
302-
[K in keyof Defaults]-?: K extends keyof T
301+
> = Readonly<Omit<T, keyof Defaults>> & {
302+
readonly [K in keyof Defaults]-?: K extends keyof T
303303
? Defaults[K] extends undefined
304304
? T[K]
305305
: NotUndefined<T[K]>

0 commit comments

Comments
 (0)
Please sign in to comment.