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>>
|
? WeakSet<DeepReadonly<U>>
|
||||||
: T extends Promise<infer U>
|
: T extends Promise<infer U>
|
||||||
? Promise<DeepReadonly<U>>
|
? Promise<DeepReadonly<U>>
|
||||||
: T extends Ref<infer U>
|
: T extends Ref<infer U, unknown>
|
||||||
? Readonly<Ref<DeepReadonly<U>>>
|
? Readonly<Ref<DeepReadonly<U>>>
|
||||||
: T extends {}
|
: T extends {}
|
||||||
? { readonly [K in keyof T]: DeepReadonly<T[K]> }
|
? { readonly [K in keyof T]: DeepReadonly<T[K]> }
|
||||||
|
|
|
@ -489,12 +489,12 @@ export type ShallowUnwrapRef<T> = {
|
||||||
[K in keyof T]: DistributeRef<T[K]>
|
[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> =
|
export type UnwrapRef<T> =
|
||||||
T extends ShallowRef<infer V, infer _>
|
T extends ShallowRef<infer V, unknown>
|
||||||
? V
|
? V
|
||||||
: T extends Ref<infer V, infer _>
|
: T extends Ref<infer V, unknown>
|
||||||
? UnwrapRefSimple<V>
|
? UnwrapRefSimple<V>
|
||||||
: UnwrapRefSimple<T>
|
: UnwrapRefSimple<T>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue