自定义守卫函数里的代码时运行时代码吗

来源:7-16 【 TS 自定义守卫综合应用】 Vue3 源码中的自定义守卫【提升自定义守卫综合运用能力】

qq_东映_0

2022-02-28

自定义守卫函数里的代码时运行时代码吗,如果是运行时代码,怎么会用来判断编译时的类型条件

写回答

1回答

keviny79

2022-02-28

//img.mukewang.com/szimg/621cc9d509f75b0109520490.jpg

在编译期间,TS 识别自动守卫中的类型并不是根据 自定守卫函数内部的运行时代码来识别的;当TS 编译器在编译期间遇到 包含自定义守卫方法的if语句的内部时【能进入内部就一定为true], 这时编译器会认为ref is Ref成立,会自动把 参数 ref 的类型范围缩小为定义时的Ref 。 TS编译器底层这样识别自定义守卫的类型。


0
0

晋级TypeScript高手,成为抢手的前端开发人才

轻松驾驭 TypeScript 高级用法, 突破前端成长瓶颈

871 学习 · 425 问题

查看课程