]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(types): fix `unref` and `toValue` when input union type contains ComputedRef...
author丶远方 <yangpanteng@gmail.com>
Fri, 10 Nov 2023 08:56:29 +0000 (16:56 +0800)
committerGitHub <noreply@github.com>
Fri, 10 Nov 2023 08:56:29 +0000 (16:56 +0800)
close #8747
close #8857

packages/reactivity/src/ref.ts

index 68844310e644d222e7991adc6c837886942c16c4..61e0bf6c13d520e4c2859b67fc5ab84e2337ef7c 100644 (file)
@@ -1,3 +1,4 @@
+import type { ComputedRef } from './computed'
 import {
   activeEffect,
   getDepFromReactive,
@@ -210,7 +211,7 @@ export type MaybeRefOrGetter<T = any> = MaybeRef<T> | (() => T)
  * @param ref - Ref or plain value to be converted into the plain value.
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#unref}
  */
-export function unref<T>(ref: MaybeRef<T>): T {
+export function unref<T>(ref: MaybeRef<T> | ComputedRef<T>): T {
   return isRef(ref) ? ref.value : ref
 }
 
@@ -230,7 +231,7 @@ export function unref<T>(ref: MaybeRef<T>): T {
  * @param source - A getter, an existing ref, or a non-function value.
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#tovalue}
  */
-export function toValue<T>(source: MaybeRefOrGetter<T>): T {
+export function toValue<T>(source: MaybeRefOrGetter<T> | ComputedRef<T>): T {
   return isFunction(source) ? source() : unref(source)
 }