小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
本文同时参与掘力星计划,赢取创作大礼包,挑战创作激励金
前言
前期回顾
类型操作
映射类型(Mapped Type)
将映射类型+ keyof + typeof +可选修饰符+只读修饰符结合起来
模板字面量类型(TS4.1)
模板字面量类型是在TS4.1引入的。通过它我们可以更方便地创建字符串字面量类型。 语法与JS中的模板字符串相同。
对比:模板字符串 VS 模板字面量
条件类型(TS2.8)
条件类型是在TS2.8时引入的。简单理解,条件类型就是通过判断两个类型之间的关系, 根据判断结果返回不同类型。语法和三目运算符( X ? A:B )一样
对比:三目运算符 VS 条件类型
其他语言中也有类似条件类型的特性。比如C++中可以通过模板特化实现。
条件类型高级话题:
条件类型中的分配( Distributive Conditional Types )
infer关键字
UnionToIntersection<U>型变Variance
常用工具类型
总结
类比:可以认为TS的类型系统本身是一个用来“操作、创建”类型的“语言”:
-
列举←→顺序执行
-
映射类型←→循环
-
条件类型←→条件判断 JS中操作的是各种值,这些值有对应的各种运算
TS中操作的是类型,类型是集合,集合有集合的运算
写TS是在干什么?
我们通过TS类型系统提供的这个“语言” ,精确的描述我们需要的类型。TS回报给我们的就是编译期就将问题提前暴露出来。代码更健壮、更易扩展。
TypeScript资源
Books
Links
-
通读;
-
重点Handbook,关注What's New 《深入理解TypeScript》在线版
-
通读 掘金:文章、专栏、小册子
-
不懂就问
-
提问时附上Playground链接
TypeScript
结语
如以上有错误的地方,请在评论区中指出,谢谢!
小可爱们看完点个赞再走一走~~