Skip to content

Commit 92f11d6

Browse files
committed
fix(types): fix shallowReadonly type
1 parent eb721d4 commit 92f11d6

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

packages/reactivity/src/reactive.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,7 @@ export function readonly<T extends object>(
166166
* returned properties.
167167
* This is used for creating the props proxy object for stateful components.
168168
*/
169-
export function shallowReadonly<T extends object>(
170-
target: T
171-
): Readonly<{ [K in keyof T]: UnwrapNestedRefs<T[K]> }> {
169+
export function shallowReadonly<T extends object>(target: T): Readonly<T> {
172170
return createReactiveObject(
173171
target,
174172
true,

test-dts/reactivity.test-d.ts

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { shallowReadonly } from '@vue/reactivity'
12
import { ref, readonly, describe, expectError, expectType, Ref } from './index'
23

34
describe('should support DeepReadonly', () => {
@@ -13,3 +14,11 @@ describe('readonly ref', () => {
1314
const r = readonly(ref({ count: 1 }))
1415
expectType<Ref>(r)
1516
})
17+
18+
describe('shallowReadonly ref unwrap', () => {
19+
const r = shallowReadonly({ count: { n: ref(1) } })
20+
// @ts-expect-error
21+
r.count = 2
22+
expectType<Ref>(r.count.n)
23+
r.count.n.value = 123
24+
})

0 commit comments

Comments
 (0)