mirror of https://github.com/vuejs/core.git
fix(types): infer the first generic type of `Ref` correctly (#12094)
This commit is contained in:
parent
57315ab968
commit
c97bb84d0b
|
@ -167,7 +167,7 @@ export type DeepReadonly<T> = T extends Builtin
|
|||
? WeakSet<DeepReadonly<U>>
|
||||
: T extends Promise<infer U>
|
||||
? Promise<DeepReadonly<U>>
|
||||
: T extends Ref<infer U>
|
||||
: T extends Ref<infer U, unknown>
|
||||
? Readonly<Ref<DeepReadonly<U>>>
|
||||
: T extends {}
|
||||
? { readonly [K in keyof T]: DeepReadonly<T[K]> }
|
||||
|
|
|
@ -489,12 +489,12 @@ export type ShallowUnwrapRef<T> = {
|
|||
[K in keyof T]: DistributeRef<T[K]>
|
||||
}
|
||||
|
||||
type DistributeRef<T> = T extends Ref<infer V> ? V : T
|
||||
type DistributeRef<T> = T extends Ref<infer V, unknown> ? V : T
|
||||
|
||||
export type UnwrapRef<T> =
|
||||
T extends ShallowRef<infer V, infer _>
|
||||
T extends ShallowRef<infer V, unknown>
|
||||
? V
|
||||
: T extends Ref<infer V, infer _>
|
||||
: T extends Ref<infer V, unknown>
|
||||
? UnwrapRefSimple<V>
|
||||
: UnwrapRefSimple<T>
|
||||
|
||||
|
|
Loading…
Reference in New Issue