视频课程 编程

中级TypeScript进阶之路 (英文课程中文字幕)

¥5.00 已售 0
✓ 自动发货 ✓ 永久有效 ✓ 售后保障

资源介绍

视频数量:32个 总时长:5小时1分 课程介绍: 中级TypeScript进阶之路 写TypeScript写了几年之后,很多人会遇到一堵墙:基础语法早就熟了,项目也能跑起来,但总有些报错让你抓狂——明明逻辑没问题,编译器就是不买账;或者团队代码里那行类型注解像天书一样,看不懂也不敢改。这种卡在"会用"和"真正懂"之间的状态,恰恰是中级阶段最有价值的地方。 这门课由Stripe的高级工程师Mike North主讲,他在Stripe的开发者平台团队负责架构设计,每天的工作就是用类型来描述公共API的形状。课程里塞满了他在大厂实战中积累的经验,不是教科书式的罗列,而是告诉你"为什么"和"什么时候用"。 一、标识符与声明合并 很多人第一次接触"声明合并"这个概念会一脸懵:同一个接口声明两次,TypeScript不会报错,反而会把它们合并?这背后其实是一条统一的规则——TypeScript中所有可以跨模块边界导入导出的具名事物,本质上都是"标识符"。理解了这条主线,很多以前要死记硬背的特殊情况,比如interface和type的合并差异、命名空间和函数的合并方式,都能被一条逻辑串起来。课程会从声明合并的具体实例入手,带你摸到TypeScript设计哲学的底层脉络。Mike自己在讲解时提到,他当年理解这个概念之后,感觉像发现了物理学定律来解释一系列不同的观察结果,那是他从"不得不记住大量特殊情况"转变到"理解背后规律"的转折点。 二、从顶部到底部:类型系统的全景 类型不只是描述"是什么",还描述"能容纳多少"。课程会用相当篇幅讲清楚"顶部类型"和"底部类型"这两个看起来很抽象的概念——前者表示可以接受任何值(比如any和unknown),后者表示永远不可能有任何值(比如never)。两者在实践中怎么用、unknown比起any到底好在哪、空对象类型{}到底意味着什么、单元类型(literal type)又扮演什么角色,这些平时零散碰到的知识点会被系统地串联起来。尤其是unknown的实战用法那一节,会讲怎么用Top Types来安全地处理来自外部的不可信数据,这是做SDK和公共API时绕不开的技能。 三、处理不确定性:null与可选链 JavaScript里最经典的坑就是"undefined is not a function"。TypeScript提供了一整套工具来对付这种不确定性。课程会讲到非空断言操作符(!)、确定赋值断言(用在变量声明处的!)、可选链(?.)、空值合并(??)。但更重要的是教你怎么判断"什么时候该让类型系统严格把关,什么时候该放过自己"。Mike会结合实际案例,比如处理一个可能为null的配置项时,到底是用断言跳过检查,还是用可选链安全访问,不同选择背后的权衡是什么。这些内容解决了日常开发中最常遇到的那类类型报错。 四、模块系统:ESM与CJS的握手 现代前端项目里很少有只用一种模块系统的了。课程花了四节专门讲这块:ES Module的导入导出语法、CommonJS的互操作(比如在TS里import一个cjs模块该怎么处理类型)、Node.js原生ESM的支持情况,以及怎么在TypeScript里导入非.ts文件。这些内容对做库开发和工具链的同学特别实用,很多团队从webpack切到Vite或者从CJS迁到ESM时踩的坑,提前搞清楚就能省下大量调试时间。 五、泛型的深度玩法 泛型不是新东西,但"用好"和"会用"差距很大。课程会讲泛型约束(extends的真正含义)、satisfies操作符(这个TS 4.9引入的语法糖怎么帮你检查结构同时保留精确类型)、泛型作用域和类型参数的可见性规则。尤其是satisfies那一节,很多人写完代码才发现类型被推断得太宽了,手动标注又太窄,satisfies正好解决这个痛点。 六、条件类型与infer:类型编程的起点 这部分是整个TypeScript类型系统里最"像编程"的地方。你会学到怎么用条件类型做类型层面的分支判断,怎么用infer关键字从结构中提取出子类型,以及infer的约束怎么写。最后还会动手实现几个类似TypeScript内置工具类型的函数——ReturnType、Parameters、Partial、Pick——通过infer和条件类型组合出来。学完这块,你再去看那些第三方库里花里胡哨的类型定义,就能看懂门道了。 七、映射类型、模板字面量与类型注册中心练习 映射类型是TypeScript里另一个强大武器——它能让你基于一个已有类型批量生成新类型。加上映射修饰符(readonly和?的加减)、模板字面量类型(把字符串也当成类型来操作),你能构建出非常灵活的类型工具。课程会带你练习怎么过滤类型的属性、怎么把一个类型的键映射成另一个类型。最后还有一节"类型注册中心"的实战练习,把前面学的东西串起来做一个完整的小项目。 八、协变与逆变:理解类型兼容的本质 这是课程的最后两节,也是最硬核的部分。协变、逆变、不变、双变——这些词听起来像是离散数学课本里的东西,但它们直接决定了为什么有些赋值能通过、有些不行。Mike会用直观的例子帮你理解:函数参数的位置在某些情况下是逆变的、返回值的位置是协变的,以及TypeScript默认的双变行为为什么可能埋下隐患、strictFunctionTypes这个严格选项到底严格在哪。学完这两节,你对类型系统的理解会有一次质的飞跃。 总的来说,这门课适合已经写过一些TypeScript项目,想要从"能跑就行"升级到"真正理解这门语言"的人。不需要你是类型系统专家,只需要你写过代码、踩过坑、好奇过"为什么"。五个小时,三十二节课,把TypeScript那些零散的高级特性拼成一张完整的知识网。学完之后再去看自己项目的tsconfig,再去读那些复杂库的类型定义,感受会完全不一样。