})
test('should make ref readonly', () => {
- const n: any = readonly(ref(1))
+ const n = readonly(ref(1))
+ // @ts-expect-error
n.value = 2
expect(n.value).toBe(1)
expect(
: T extends Promise<infer U>
? Promise<DeepReadonly<U>>
: T extends Ref<infer U>
- ? Ref<DeepReadonly<U>>
+ ? Readonly<Ref<DeepReadonly<U>>>
: T extends {}
? { readonly [K in keyof T]: DeepReadonly<T[K]> }
: Readonly<T>
toRef,
toRefs,
ToRefs,
- shallowReactive
+ shallowReactive,
+ readonly
} from './index'
function plainType(arg: number | Ref<number>) {
expectType<Ref<number>>(x)
}
+// readonly() + ref()
+expectType<Readonly<Ref<number>>>(readonly(ref(1)))
+
// #2687
interface AppData {
state: 'state1' | 'state2' | 'state3'