获得徽章 0
- 详细地解读了条件类型这一重要类型工具的使用方式、使用场景、分布式特性以及 infer 关键字。对于条件类型最核心的部分,即 extends 所代表的类型兼容性,由于在上一节我们已经了解了整个 TypeScript 类型系统的类型层级,因此在实际学习时其实基本没有什么压力,毕竟你已经参透了它最基础的运行规则。而对于 infer 关键字的使用,除了我们已经了解的,在函数结构、对象结构、数组结构等不同结构中的使用以外,请你不妨再试试它在更复杂场景下的使用,感受一下模式匹配的魅力。展开赞过评论1
- 从一个原始类型开始构造类型层级链,向上触及了 Top Type,向下也见到了 Bottom Type。而在构造过程中,除了父子类型,我们还了解了联合类型的子类型判定、基于结构化类型系统的子类型判定、基于类型系统基本规则的子类型判定,基本包括了会见到的各种特殊情况评论点赞
- 学到了 TypeScript 的结构化类型系统是基于类型结构进行比较的,而标称类型系统是基于类型名来进行比较的。以及在 TypeScript 中,如何通过为类型附加信息的方式,从类型层面或者逻辑层面出发去模拟标称类型系统。如果你在实际上的业务代码中遇到过单位转换这种类型问题,不妨考虑使用这种方式,来进一步提升项目中类型的安全性!评论点赞
- 学习了类型编程中的“函数参数”,感受到了泛型与类型别名一同使用时,真的就像一个接收输入再输出结果的函数一样,紧接着了解了泛型的本质:基于调用时类型推导来自动填充类型参数,从而让多个位置上的类型存在约束或关联,实现更严格的类型保护评论点赞
- 类型守卫部分,我们初次了解到了类型控制流分析的存在,以及使用类型保护、类型守卫来进行类型控制流的分析纠正等。同时,我们还学习了可辨识联合类型与可辨识属性的概念,想必以后你对如何处理联合类型会更有思路。评论点赞
![[流泪]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_6.dde0d83.png)
![[可怜]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_5.ece2a96.png)