types(defineComponent): fix unwrap when returning Ref<T>|undefined from setup (#4100)

This commit is contained in:
Carlos Rodrigues
2021-07-15 20:58:20 +01:00
committed by GitHub
parent e508ee08e9
commit f6a5f09a3a
2 changed files with 9 additions and 3 deletions

View File

@@ -205,7 +205,11 @@ type BaseTypes = string | number | boolean
export interface RefUnwrapBailTypes {}
export type ShallowUnwrapRef<T> = {
[K in keyof T]: T[K] extends Ref<infer V> ? V : T[K]
[K in keyof T]: T[K] extends Ref<infer V>
? V
: T[K] extends Ref<infer V> | undefined // if `V` is `unknown` that means it does not extend `Ref` and is undefined
? unknown extends V ? undefined : V | undefined
: T[K]
}
export type UnwrapRef<T> = T extends Ref<infer V>