import { WritableComputedRef } from '@vue/reactivity' import { expectType, $ref, $shallowRef, $computed, $fromRefs, $raw, ref, Ref, ComputedRef } from './index' // $ref expectType($ref(1)) expectType($ref(ref(1))) expectType<{ foo: number }>($ref({ foo: ref(1) })) // $shallowRef expectType($shallowRef(1)) expectType<{ foo: Ref }>($shallowRef({ foo: ref(1) })) // $computed expectType($computed(() => 1)) let b = $ref(1) expectType( $computed(() => b, { onTrack() {} }) ) // writable computed expectType( $computed({ get: () => 1, set: () => {} }) ) function useFoo() { return { x: ref(1), y: ref('hi'), z: 123 } } // $fromRefs const { x, y, z } = $fromRefs(useFoo()) expectType(x) expectType(y) expectType(z) // $raw expectType>($raw(x)) expectType>($raw(y)) const c = $computed(() => 1) const cRef = $raw(c) expectType>(cRef) const c2 = $computed({ get: () => 1, set: () => {} }) const c2Ref = $raw(c2) expectType>(c2Ref)