Skip to content

Commit 42104aa

Browse files
authoredJul 16, 2021
fix(readonly): align behavior with vue-next. (#765)
1 parent ebb7975 commit 42104aa

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed
 

‎src/reactivity/readonly.ts

+3
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ type UnwrapNestedRefs<T> = T extends Ref ? T : UnwrapRef<T>
4444
export function readonly<T extends object>(
4545
target: T
4646
): DeepReadonly<UnwrapNestedRefs<T>> {
47+
if (__DEV__ && !isObject(target)) {
48+
warn(`value cannot be made reactive: ${String(target)}`)
49+
}
4750
return target as any
4851
}
4952

‎test/v3/reactivity/readonly.spec.ts

+4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
reactive,
77
watch,
88
nextTick,
9+
readonly,
910
} from '../../../src'
1011

1112
const Vue = require('vue/dist/vue.common.js')
@@ -386,6 +387,9 @@ describe('reactivity/readonly', () => {
386387
// @ts-ignore
387388
shallowReadonly(25)
388389
expect(`value cannot be made reactive: 25`).toHaveBeenWarned()
390+
// @ts-ignore
391+
readonly(25)
392+
expect(`value cannot be made reactive: 25`).toHaveBeenWarned()
389393
})
390394

391395
// #669

0 commit comments

Comments
 (0)
Please sign in to comment.