types(reactivity): improve typings for shallowRef (#1780)
				
					
				
			This commit is contained in:
		
							parent
							
								
									4172fdb90c
								
							
						
					
					
						commit
						c86e7ad11b
					
				@ -35,7 +35,10 @@ export function ref(value?: unknown) {
 | 
			
		||||
  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)
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
import {
 | 
			
		||||
  Ref,
 | 
			
		||||
  ref,
 | 
			
		||||
  shallowRef,
 | 
			
		||||
  isRef,
 | 
			
		||||
  unref,
 | 
			
		||||
  reactive,
 | 
			
		||||
@ -120,6 +121,22 @@ const state = 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'
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user