posts

《TypeScript编程入门》 · 全书目录与章节索引(61 节)

《TypeScript编程入门》全 61 节,是一套面向零基础的 TypeScript 完整教材:从语言诞生史与设计目标讲起,依次覆盖开发环境与工具链、基本类型系统、函数与泛型、接口与类、联合类型与类型收窄、高级类型与工具类型、模块与声明文件、运行时验证、错误处理与异步、测试与构建配置,最后用一个全栈项目与迁移方案串联全部知识点。本页给出全书分章目录。

《TypeScript编程入门》全 61 节,是一套面向零基础的 TypeScript 完整教材:从「为什么需要 TypeScript」讲到类型系统全貌,再落到工程实践与全栈项目。

本页是《TypeScript编程入门》的全书目录:按章节顺序列出全部 61 节,点击标题直达正文。也可以从各节的「上一篇 / 下一篇」按顺序通读。

全书概览

项目内容
书稿《TypeScript编程入门》
章节数61 节
领域TypeScript 语言基础与类型系统
阅读方式从「目录」篇进入按顺序通读,或按章节表跳读
上级专题书稿专题

全书目录

前置:序、前言与目录

节文章核心内容
—《TypeScript编程入门》序《TypeScript编程入门》的序。为什么在类型化 JavaScript 的今天依然值得系统学习 …
—《TypeScript编程入门》前言《TypeScript编程入门》前言:说明本书的目标读者与前置知识、五部分 18 章的结构分工、每节…
—《TypeScript编程入门》目录《TypeScript编程入门》全书导航页:说明本书定位、读者画像与前置知识、三条学习路径与各部分之…

第 1 章 认识 TypeScript

节文章核心内容
1.11.1 TypeScript 的诞生与设计目标本节从 2010 年前后大型 JavaScript 应用的维护困境讲起,梳理 TypeScript …
1.21.2 与 JavaScript 的关系(超集·类型擦除)本节回答一个新手最容易搞混的问题:TypeScript 和 JavaScript 到底是什么关系。我…
1.31.3 适用场景与生态版图本节把 TypeScript 放回真实的技术版图:先给出判断「何时收益最大、何时不划算」的几条标准,…

第 2 章 开发环境与工具链

节文章核心内容
2.12.1 安装 Node.js、TS 与编辑器配置本节从零搭建 TypeScript 开发环境:先讲清为什么必须先装 Node.js,再对比官方安装包…
2.22.2 tsc 与 tsconfig.json 初探本节拆开 TypeScript 编译器 tsc 与它的配置文件 tsconfig.json。先运行 …
2.32.3 第一个项目:从零到运行本节把零散知识组装成一个能跑起来的完整项目:命令行温度换算器。从创建目录、初始化 npm、安装 ty…

第 3 章 基本类型系统

节文章核心内容
3.13.1 原始类型与类型注解本节从 TypeScript 的原始类型讲起,逐一介绍 string、number、boolean、…
3.23.2 数组、元组与枚举本节讲透 TypeScript 里三种「复数形态」的类型:数组、元组与枚举。先对比 T[] 与 Ar…
3.33.3 any·unknown·never·void 与类型断言本节处理类型系统里的四个边界类型:any、unknown、never、void。先说明 any 为什…

第 4 章 函数与作用域

节文章核心内容
4.14.1 签名、可选参数与默认值函数是 TypeScript 程序的基本构件,而函数签名则决定了调用方能看到什么、编译器能替你检查什…
4.24.2 重载、this 类型与箭头函数一个函数在类型层面可以有多个签名,这就是函数重载。本节先讲清重载签名与实现签名的分工、匹配顺序以及常…
4.34.3 泛型函数入门泛型是 TypeScript 类型系统里最重要的复用机制。本节从「同一段逻辑要处理多种类型」这个朴素…

第 5 章 接口与类型别名

节文章核心内容
5.15.1 interface 定义对象结构本节从「如何描述一个对象长什么样」这个问题出发,系统讲解 interface 的定义方式与核心能力:…
5.25.2 type 别名、联合与交叉本节讲解 type 别名的定义方式与它相对 interface 的独有能力:给联合类型、交叉类型、元…
5.35.3 结构化类型与两者取舍本节回答两个贯穿全章的问题:为什么 TypeScript 只比较类型结构、不比较类型名字,以及 in…

第 6 章 类与面向对象

节文章核心内容
6.16.1 类、访问修饰符与参数属性本节讲解 TypeScript 的类相比 JavaScript 多出了什么:访问修饰符如何约束成员的…
6.26.2 继承、抽象类与多态本节讲解 TypeScript 中类的继承与多态:如何用 extends 与 super 复用父类行…
6.36.3 接口实现与 mixin本节讲解 TypeScript 中类与接口的两条连接方式:用 implements 让一个类同时承诺…

第 7 章 联合类型与类型收窄

节文章核心内容
7.17.1 联合类型与字面量类型本节先讲联合类型,说明如何用「A | B」表达取值可能是若干形态之一,再引入字面量类型,把具体的字符…
7.27.2 判别联合(Discriminated Unions)本节讲解判别联合,也就是给联合的每个成员加一个共同的判别字段,让编译器能顺着这个字段自动区分当前处于…
7.37.3 类型守卫与控制流分析本节讲解当数据结构本身没有判别字段时,如何通过运行期检查把联合类型收窄到具体成员。内容涵盖 type…

第 8 章 泛型进阶

节文章核心内容
8.18.1 泛型约束(extends)本节承接泛型函数入门,讲清为什么裸泛型在函数体里几乎什么都做不了,以及 extends 关键字如何把…
8.28.2 泛型默认值与类型推断本节讲清泛型默认值的语法、求值顺序,以及默认值必须满足约束这条硬规则。随后系统梳理类型推断的四个来源…
8.38.3 泛型在接口·类·函数中的协同本节把泛型从函数扩展到接口与类,讲清三者各自声明类型参数的位置与作用域,解释为什么静态成员不能用类的…

第 9 章 高级类型

节文章核心内容
9.19.1 keyof·typeof 与索引访问类型本节讲解 TypeScript 类型编程的三块基石:用 keyof 取出对象类型的全部键名,用 ty…
9.29.2 映射类型与键重映射(as)本节讲解映射类型:如何用 [K in keyof T] 遍历一个类型的所有键并批量生成新类型,如何用…
9.39.3 条件类型与 infer本节讲解类型运算的最后一块拼图:条件类型 T extends U ? X : Y 如何充当类型层面的…

第 10 章 类型体操与工具类型

节文章核心内容
10.110.1 内置工具类型全解本节把 TypeScript 标准库里的内置工具类型逐个拆开:从对象修饰的 Partial、Requ…
10.210.2 模板字面量类型本节讲解模板字面量类型如何把字符串拼接搬进类型系统:用反引号加 ${} 构造字面量模式,与联合类型组…
10.310.3 递归类型与类型性能治理本节讲类型层面的最后一块硬骨头:递归类型如何用「自我引用加终止条件」描述 JSON、树与深层修饰;编…

第 11 章 模块与包管理

节文章核心内容
11.111.1 ES 模块与模块解析本节从模块化的历史讲起,说明为什么全局脚本会互相污染、ES 模块如何用显式的 export 与 im…
11.211.2 ESM/CJS 互操作与 moduleResolution现实项目里 ES 模块与 CommonJS 长期并存,本节讲清两者如何互相调用。先看 package…
11.311.3 npm 包、类型声明与 exports本节从使用者视角切换到包作者视角,讲清一个 npm 包如何被 TypeScript 正确识别。先看 …

第 12 章 声明文件与类型扩展

节文章核心内容
12.112.1 .d.ts 与 @types 机制本节从类型擦除讲起,解释为什么编译产物 .js 里不剩任何类型信息、消费方却依然能获得完整补全,从而…
12.212.2 为无类型库编写声明本节讲的是 .d.ts 的实战编写:当一个库既没有自带类型、社区也没有 @types 包时,如何从 …
12.312.3 模块扩充与全局类型增强本节讲 TypeScript 最易被误用的一项能力:不新建声明,而是往已有类型上「长」成员。先讲清声…

第 13 章 运行时验证与类型安全边界

节文章核心内容
13.113.1 类型擦除带来的运行时盲区本节从类型擦除讲起:TypeScript 编译时会把 interface、类型注解与断言全部抹掉,只…
13.213.2 Zod 模式验证与类型推导本节介绍如何在运行时检查数据形状:用 Zod 声明 schema,用 z.infer 让编译期类型自…
13.313.3 API 契约与边界数据校验本节把校验真正落到工程上:先列出一份完整的边界清单,再逐个给出落地方式——环境变量启动期校验并 fa…

第 14 章 错误处理与异步编程

节文章核心内容
14.114.1 错误类型与 Result 模式本节把「错误」当成类型问题来讨论:为什么 catch 的参数只能是 unknown,如何用自定义错误…
14.214.2 Promise 与 async/await 的类型本节把 Promise 当成带类型参数的状态机来拆解:Promise 里的 T 描述什么,th…
14.314.3 并发控制、取消与超时本节解决异步编程里最容易被忽略的三个问题:并发数不受控、任务无法取消、请求没有超时。我们手写一个泛型…

第 15 章 测试与质量保障

节文章核心内容
15.115.1 单元测试(Vitest/Jest)本节从零为 TypeScript 项目搭起单元测试:先比较 Vitest 与 Jest 的取舍,再手…
15.215.2 类型测试(tsd/expect-type)本节讲一个常被忽视的话题:类型本身也要写测试。先说明运行时断言为什么测不到类型,再用 @ts-exp…
15.315.3 覆盖率、lint 与 CI 门禁本节是第 15 章收官,把零散的测试变成系统性防线:先厘清语句、分支、函数、行四种覆盖率口径与阈值配…

第 16 章 构建与工程配置

节文章核心内容
16.116.1 编译目标与严格模式配置本节把 tsconfig.json 里最容易配错的两组选项讲透:编译目标与严格模式。先看 targe…
16.216.2 esbuild/swc/tsup 与打包产物本节解释为什么 tsc 不再是唯一的编译路径,并对比 esbuild、swc、tsup 三类工具的定…
16.316.3 Monorepo 与 Project References本节解决「多个包如何在一个仓库里协同」这件事。先说清什么时候真的需要 Monorepo,再用一个 p…

第 17 章 全栈项目实战

节文章核心内容
17.117.1 项目结构与分层设计本节把前面散落的语言知识收拢成一个能交付的项目骨架:先对比按类型、按功能、按层三种组织方式的代价,再…
17.217.2 前后端共享类型与 API 契约本节解决全栈项目里最费神的一类问题:同一份数据结构在前后端被写了两遍。我们先比较手工复制、共享包、代…
17.317.3 部署、发布与版本演进本节把写好的 TypeScript 代码真正送上生产:先讲清构建产物与运行时的差异,对比静态托管、长…

第 18 章 大型项目架构与迁移

节文章核心内容
18.118.1 JavaScript 项目渐进式迁移本节讲解如何在不推倒重来的前提下,把类型系统逐步铺进一个存量 JavaScript 项目。内容包括三…
18.218.2 类型驱动的重构与团队规范本节讲如何把类型系统从「编译能过」升级为「持续重构的引擎」。内容包括编译器作为重构安全网的原理、用 …
18.318.3 学习路径与生态选型本节是全书的收尾,先给出一张覆盖 18 章的知识地图与能力自评表,再按前端应用、Node 后端、库与…

附录

节文章核心内容
—附录 A TypeScript 语法速查表本附录是一份可随时翻阅的 TypeScript 语法速查表:用表格对照原始类型与字面量、数组元组枚举…
—附录 B 内置工具类型与常用类型模式本附录分两部分:先给出一份内置工具类型全解,逐个列出签名、作用、等价手写实现与典型用例;再整理品牌类…
—附录 C 常用工具、库与资源本附录按类别汇总 TypeScript 生态里的常用工具与库:编译器与运行时、打包构建、类型检查与 …
—附录 D 常见问题与解决方案(FAQ)本附录汇总初学者最常撞上的十三类 TypeScript 报错与困惑,覆盖模块找不到声明、属性不存在、…
全部文章 Game Golang Saas Rust 游戏开发 客户端开发 GameDev TypeScript Lua Products
typescript

《TypeScript编程入门》附录 D 常见问题与解决方案(FAQ)

本附录汇总初学者最常撞上的十三类 TypeScript 报错与困惑,覆盖模块找不到声明、属性不存在、可能为 null、类型不可赋值、never 参数、as 断言滥用、tsconfig 不生效、ESM 与 CJS 混用、isolatedModules、第三方库缺类型、CI 与本地结论不一致等,每问按症状、原因、解决三段给出。

8 分钟阅读
TypeScript TypeScript编程入门 FAQ
typescript

《TypeScript编程入门》18.3 学习路径与生态选型

本节是全书的收尾,先给出一张覆盖 18 章的知识地图与能力自评表,再按前端应用、Node 后端、库与工具链三条路径给出具体的学习顺序与练习建议。随后讲生态选型的方法论:运行时、框架、构建器、校验库、ORM、测试框架各自的评估维度与常见组合,以及如何判断一个第三方库的类型质量。读完你能根据自己的方向排出接下来三个月的学习计划,并在面对新工具时做出有依据的取舍。

11 分钟阅读
TypeScript TypeScript编程入门 学习路径
typescript

《TypeScript编程入门》18.2 类型驱动的重构与团队规范

本节讲如何把类型系统从「编译能过」升级为「持续重构的引擎」。内容包括编译器作为重构安全网的原理、用 never 做穷尽性检查让新增分支在编译期暴露、借助 @deprecated 与 satisfies 做渐进式 API 演进、以共享 tsconfig 与 ESLint 规则固化团队规范、把类型检查接进 CI 门禁,以及用类型覆盖率跟踪收敛。读完你能为一支多人团队定出可执行的类型规范。

8 分钟阅读
TypeScript TypeScript编程入门 类型驱动重构
typescript

《TypeScript编程入门》18.1 JavaScript 项目渐进式迁移

本节讲解如何在不推倒重来的前提下,把类型系统逐步铺进一个存量 JavaScript 项目。内容包括三种迁移策略的取舍、用 allowJs 与 checkJs 让 tsc 先读懂 JS、用 JSDoc 在 JS 里补类型、文件迁移的自底向上顺序、strict 家族开关的正确开启次序,以及 @ts-expect-error 等逃生舱的粒度与风险。读完你能设计出可回滚的迁移路线,并用三个指标跟踪进度。

8 分钟阅读
TypeScript TypeScript编程入门 渐进式迁移
typescript

《TypeScript编程入门》17.3 部署、发布与版本演进

本节把写好的 TypeScript 代码真正送上生产:先讲清构建产物与运行时的差异,对比静态托管、长驻 Node 进程、Serverless、npm 包四种部署形态,再给出把类型检查放在第一道门禁的 CI 流水线。随后讲环境变量的启动期校验、语义化版本号在 TS 项目里的特殊含义、全量与灰度、金丝雀、蓝绿三种发布策略的取舍,以及回滚时最该先想清楚的数据库迁移问题。

12 分钟阅读
TypeScript TypeScript编程入门 部署发布
typescript

《TypeScript编程入门》17.2 前后端共享类型与 API 契约

本节解决全栈项目里最费神的一类问题:同一份数据结构在前后端被写了两遍。我们先比较手工复制、共享包、代码生成三种做法的取舍,再把 API 契约落成显式的请求与响应类型,用 Zod 让类型与运行时校验同源,讲清类型擦除后边界数据为什么必须校验。最后给出字段增删的兼容策略、统一错误契约,以及日期、大整数、可选字段这几类序列化陷阱的规避方法。

9 分钟阅读
TypeScript TypeScript编程入门 API 契约
typescript

《TypeScript编程入门》17.1 项目结构与分层设计

本节把前面散落的语言知识收拢成一个能交付的项目骨架:先对比按类型、按功能、按层三种组织方式的代价,再讲清分层的本质是依赖方向单向,并用一棵完整目录树演示 domain、application、infrastructure、interfaces 各层怎么摆。随后区分 DTO、领域模型与视图模型三类类型,用接口把依赖倒置落地,最后给出循环依赖、跨层直连、上帝模块三种腐化信号的识别与修复。

8 分钟阅读
TypeScript TypeScript编程入门 项目结构
typescript

《TypeScript编程入门》16.3 Monorepo 与 Project References

本节解决「多个包如何在一个仓库里协同」这件事。先说清什么时候真的需要 Monorepo,再用一个 pnpm workspace 示例搭出目录结构;接着解释不用 Project References 会退化成什么样子,配好 composite 与 references 跑通 tsc -b 增量构建;最后处理 paths 别名与项目引用的冲突,并给出高频报错清单。

8 分钟阅读
TypeScript TypeScript编程入门 Monorepo
typescript

《TypeScript编程入门》16.2 esbuild/swc/tsup 与打包产物

本节解释为什么 tsc 不再是唯一的编译路径,并对比 esbuild、swc、tsup 三类工具的定位与取舍。先看它们「快」的代价是什么,再讲清产物三件套 ESM、CJS、d.ts 分别服务谁,接着拆解 sourcemap 与 tree-shaking 在打包语境下的真实行为,最后给出「类型检查与打包分离」的工程范式与高频踩坑清单。读完你能为库或应用选出合适的构建链。

7 分钟阅读
TypeScript TypeScript编程入门 构建工具
typescript

《TypeScript编程入门》16.1 编译目标与严格模式配置

本节把 tsconfig.json 里最容易配错的两组选项讲透:编译目标与严格模式。先看 target、lib、module 三者如何共同决定产物语法与可用 API,再逐项拆开 strict 背后的多个子开关,说明每个开关能拦住哪一类真实 bug;最后给出老项目从低严格度到全严格的分阶段迁移路线,并汇总高频报错与排查方法。读完你能独立为任意项目写出一份有理有据的 tsconfig。

8 分钟阅读
TypeScript TypeScript编程入门 tsconfig 编译目标
typescript

《TypeScript编程入门》15.3 覆盖率、lint 与 CI 门禁

本节是第 15 章收官,把零散的测试变成系统性防线:先厘清语句、分支、函数、行四种覆盖率口径与阈值配置的陷阱,再给出 ESLint 搭配 typescript-eslint 类型感知规则的扁平配置,说明 Prettier 与提交前钩子的职责分工,最后用一份 GitHub Actions 流水线演示类型检查、lint、测试、覆盖率如何逐层卡门,并给出渐进收紧的棘轮策略与常见坑。

8 分钟阅读
TypeScript TypeScript编程入门 代码覆盖率
typescript

《TypeScript编程入门》15.2 类型测试(tsd/expect-type)

本节讲一个常被忽视的话题:类型本身也要写测试。先说明运行时断言为什么测不到类型,再用 @ts-expect-error 给出零依赖方案,随后系统讲解 expect-type 与 tsd 两套断言库的 API、配置与接入流水线的方式,并以手写工具类型 DeepPartial 为例演示如何为类型写回归测试。读完你能为发布给团队或社区的库建立一道类型契约防线。

7 分钟阅读
TypeScript TypeScript编程入门 类型测试
typescript

《TypeScript编程入门》15.1 单元测试(Vitest/Jest)

本节从零为 TypeScript 项目搭起单元测试:先比较 Vitest 与 Jest 的取舍,再手写第一个 describe/it/expect 用例,讲清测试代码本身同样受 tsc 检查、mock 如何保持类型安全、异步与假定时器该怎么测。随后给出两者的 API 对照表,并总结 globals 类型缺失、vi.mock 提升等常见报错,读完你能为真实工程补上一套可维护的测试。

8 分钟阅读
TypeScript TypeScript编程入门 单元测试
typescript

《TypeScript编程入门》14.3 并发控制、取消与超时

本节解决异步编程里最容易被忽略的三个问题:并发数不受控、任务无法取消、请求没有超时。我们手写一个泛型并发池,把 AbortController 与 AbortSignal 的取消链路讲透,用 AbortSignal.timeout 与 Promise.race 实现两种超时方案,再给出指数退避重试与竞态防护的写法,读完你能写出可控、可中断、可观测的异步批处理代码。

9 分钟阅读
TypeScript TypeScript编程入门 并发控制