isRef()
isRef()
:检查某个值是否为 ref。
isRef
函数接收一个参数,即要判断的值。如果该参数是由ref创建的响应式对象,则返回true
;否则,返回false
。
import {
ref, isRef } from 'vue'
const normalValue = '这是一个普通值'
const refValue = ref('这是一个 ref 创建的响应式值')
console.log(isRef(normalValue)) // false
console.log(isRef(refValue)) // true
isRef()
可以作为类型守卫
isRef()
的返回值一个类型判定,因此 isRef()
可以被用作类型守卫。
类型判定(type predicate)的概念
在 TypeScript 中,类型判定是一种特殊类型的函数,它用于在运行时确定一个值的类型。类型判定函数的返回值是一个类型谓词,它的形式为参数名 is 类型
。当类型判定函数返回true
时,TypeScript 编译器会将参数的类型缩小为指定的类型。
- 在条件判断中的类型缩小:当使用
isRef()
进行类型判断后,TypeScript 可以在后续的代码中根据判断结果进行类型缩小。- 在
if
分支中,变量的类型被确定为响应式对象。 - 在
else
分支中,变量的类型被确定为非响应式对象。
- 在
示例:
import {
ref, isRef } from