return createRef(value)
}
-export function shallowRef<T>(value: T): T extends Ref ? T : Ref<T>
+export function shallowRef<T extends object>(
+ value: T
+): T extends Ref ? T : Ref<T>
+export function shallowRef<T>(value: T): Ref<T>
export function shallowRef<T = any>(): Ref<T | undefined>
export function shallowRef(value?: unknown) {
return createRef(value, true)
import {
Ref,
ref,
+ shallowRef,
isRef,
unref,
reactive,
expectType<string>(state.foo.label)
+// shallowRef
+type Status = 'initial' | 'ready' | 'invalidating'
+const shallowStatus = shallowRef<Status>('initial')
+if (shallowStatus.value === 'initial') {
+ expectType<Ref<Status>>(shallowStatus)
+ expectType<Status>(shallowStatus.value)
+ shallowStatus.value = 'invalidating'
+}
+
+const refStatus = ref<Status>('initial')
+if (refStatus.value === 'initial') {
+ expectType<Ref<Status>>(shallowStatus)
+ expectType<Status>(shallowStatus.value)
+ refStatus.value = 'invalidating'
+}
+
// proxyRefs: should return `reactive` directly
const r1 = reactive({
k: 'v'