阅读 348
【青训营】- TypeScript入门之高级

【青训营】- TypeScript入门之高级

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

本文同时参与掘力星计划,赢取创作大礼包,挑战创作激励金

前言

前期回顾

TypeScript入门之开发环境及预备知识

TypeScript入门之基础知识

TypeScript入门之进阶 QQ截图20211015142631.png

类型操作

映射类型(Mapped Type)

QQ截图20211015142940.png QQ截图20211015143024.png QQ截图20211015143125.png QQ截图20211015143157.png 将映射类型+ keyof + typeof +可选修饰符+只读修饰符结合起来 QQ截图20211015143322.png

模板字面量类型(TS4.1)

模板字面量类型是在TS4.1引入的。通过它我们可以更方便地创建字符串字面量类型。 语法与JS中的模板字符串相同。

对比:模板字符串 VS 模板字面量 QQ截图20211015143522.png

条件类型(TS2.8)

条件类型是在TS2.8时引入的。简单理解,条件类型就是通过判断两个类型之间的关系, 根据判断结果返回不同类型。语法和三目运算符( X ? A:B )一样

对比:三目运算符 VS 条件类型 QQ截图20211015143724.png 其他语言中也有类似条件类型的特性。比如C++中可以通过模板特化实现。 QQ截图20211015143900.png

条件类型高级话题:

  • 条件类型中的分配( Distributive Conditional Types )

  • infer关键字

  • UnionToIntersection<U>

  • 型变Variance

常用工具类型

lib.es5.d.ts QQ截图20211015153922.png

总结

QQ截图20211015154242.png 类比:可以认为TS的类型系统本身是一个用来“操作、创建”类型的“语言”:

  • 列举←→顺序执行

  • 映射类型←→循环

  • 条件类型←→条件判断

JS中操作的是各种值,这些值有对应的各种运算

TS中操作的是类型,类型是集合,集合有集合的运算

写TS是在干什么?

我们通过TS类型系统提供的这个“语言” ,精确的描述我们需要的类型。TS回报给我们的就是编译期就将问题提前暴露出来。代码更健壮、更易扩展。

TypeScript资源

Books

QQ截图20211015160028.png

Links

TypeScript官网文档

  • 通读;

  • 重点Handbook,关注What's New

《深入理解TypeScript》在线版

  • 通读

掘金:文章、专栏、小册子

知乎TypeScript专栏

StackOverflow

  • 不懂就问

  • 提问时附上Playground链接

TypeScript源码、Issue、 PR

TypeScript

QQ截图20211015160518.png

结语

如以上有错误的地方,请在评论区中指出,谢谢!

小可爱们看完点个赞再走一走~~

文章分类
阅读
文章标签