自定义守卫函数里的代码时运行时代码吗
来源:7-16 【 TS 自定义守卫综合应用】 Vue3 源码中的自定义守卫【提升自定义守卫综合运用能力】

qq_东映_0
2022-02-28
自定义守卫函数里的代码时运行时代码吗,如果是运行时代码,怎么会用来判断编译时的类型条件
写回答
1回答
-
keviny79
2022-02-28
在编译期间,TS 识别自动守卫中的类型并不是根据 自定守卫函数内部的运行时代码来识别的;当TS 编译器在编译期间遇到 包含自定义守卫方法的if语句的内部时【能进入内部就一定为true], 这时编译器会认为ref is Ref成立,会自动把 参数 ref 的类型范围缩小为定义时的Ref 。 TS编译器底层这样识别自定义守卫的类型。
00
相似问题