《TypeScript编程入门》目录

《TypeScript编程入门》全书导航页:说明本书定位、读者画像与前置知识、三条学习路径与各部分之间的依赖关系,并按五部分列出 18 章 54 节的完整章节索引,另含序、前言、附录 A–D 与常见问题速查表,方便按需定位、跳读与查阅,是一份可长期使用的学习地图。

《TypeScript编程入门》目录

这一页是全书的总入口。它不只列出章节标题,还给出三条可以照着走的阅读路径,以及每一节的定位说明。如果你不确定从哪开始,先读下面的「读者画像与前置知识」,再对照「学习路径」选一条;如果你已经有明确目标,可以直接跳到「分部分章节」按编号定位。

全书结构是:前置 3 篇 + 正文 18 章 54 节 + 附录 4 篇,共 61 篇。正文按学习曲线分为五个部分,每一部分解决一类问题。

如何使用本目录

这一页有三种用法,取决于你此刻的状态:

如果你刚拿到这本书,按顺序读「本书定位」「读者画像与前置知识」「学习路径」三节,用五分钟决定自己的入口章节。不要跳过这一步,选错入口比读得慢更浪费时间。

如果你已经读到一半,想查某一节在哪,直接看「分部分章节」里对应部分的表格。每一行都有一句话说明,可以帮你确认是不是你要找的那一节,避免点进去再退出来的反复。

如果你把这本书当手册用,主要会用到「前置与附录」和每一节末尾的小结。附录 A 到 D 分别覆盖语法、工具类型、生态资源与常见问题,是查阅频率最高的四篇。

本书定位

这是一本面向零基础读者的 TypeScript 系统教材。它的目标不是让你「听说过 TypeScript」,而是让你能够独立地用它设计类型、组织项目、并在团队协作中做出合理的类型决策。

它有三个刻意的取舍。第一,重原理而非重清单:讲清楚一个特性为什么存在、什么时候该用,比罗列它能写什么更重要。第二,示例可运行:书中代码尽量保持为可直接复制运行的最小片段,而不是伪代码。第三,不回避进阶内容但也不炫技:映射类型、条件类型这些能力会认真讲,但会反复提醒你把可维护性放在巧妙性之前。

如果你需要的是一份「30 分钟速成 TypeScript」的教程,这本书可能过于啰嗦;如果你希望一次把基础打牢、之后不必反复回炉,那它的节奏是合适的。

读者画像与前置知识

不同类型的读者,起点和建议路径差别很大。可以先在下面找到最接近自己的那一类。

完全新手(几乎没写过代码):建议按顺序从第 1 章读到第 18 章,不要跳章。类型系统是层层叠加的——不理解基础注解就读不懂泛型,不理解泛型就读不懂条件类型。同时请先补一点 JavaScript 基础:变量声明、函数、数组方法、对象解构、Promise 与 async/await。本书假定你能读懂基本的 JS 代码,不会从头讲解循环和条件语句。

有 JavaScript 基础(1 年以上):这是本书最主要的读者群。建议快速扫过第 1 至第 4 章建立心智模型,把主要精力放在第 5 至第 10 章——对象建模、联合类型、泛型与类型变换,这些才是把 JS 思维切换成 TS 思维的关键。第 13 章的「运行时盲区」和第 15 章的测试部分不要跳,它们解释了很多「类型写对了但线上还是出错」的困惑。

有其他静态类型语言基础(Java/C#/Rust/Go 等):可以跳过第 3 章的类型基础,直接从第 4 章读起,但要特别留意三处差异——结构化类型系统(看形状不看名字)、类型擦除(运行时无类型信息)、以及 any 这个逃生舱的存在。第 5 章和第 13 章对你来说信息密度最高。

学习路径

下表给出三条典型路径。三条路径不互斥,可以先速成再补齐。

路径适合谁读哪些预计用时
完整通读零基础 / 想重建知识结构第 1 章至第 18 章顺序读,每节动手写代码8–10 周(每天 1 小时)
两周速成有 JS 基础、急于上手业务3.1、4.1、5.1、5.2、7.1、7.2、11.1、13.1 共 8 节2 周
参考手册已会用、需要随时查按目录定位章节,优先用每节「本节目标」与「小结」按需

两条补充建议:无论选哪条路径,都请完整跑通第 2 章的示例,把环境和 tsconfig.json 配置正确;如果时间允许,第 7 章的判别联合值得反复练习,它是全书性价比最高的一节内容。

一份可执行的八周计划

上面三条路径偏原则。如果你希望有一份可以直接照着打勾的安排,下面这份八周计划可以作为起点(按每天投入一小时估算),它对应的是「完整通读」路径。

周次主要任务完成标志
第 1 周第 1–3 章:语言定位、环境搭建、基本类型能独立建好工程并写出带类型的小程序
第 2 周第 4–5 章:函数签名与对象建模能为一段业务逻辑设计出 interface
第 3 周第 6–7 章:类、联合类型与判别联合能用判别联合替换掉一串布尔标志位
第 4 周第 8–9 章:泛型约束、映射类型与条件类型能读懂工具类型源码,并写出简单的类型工具
第 5 周第 10–11 章:内置工具类型、模块解析能在自己的项目里组织模块并处理路径解析
第 6 周第 12–13 章:声明文件与运行时校验能为无类型依赖写声明,并在边界加上校验
第 7 周第 14–16 章:错误处理、异步、测试与构建能把类型检查接进 CI 流水线
第 8 周第 17–18 章:全栈契约、迁移与收尾能规划一个老项目的渐进式迁移方案

这份计划的关键不在于准时,而在于每周都有产出。类型知识如果不落到代码上,遗忘速度会非常快。如果某一周的任务没有完成,宁可延长这一周,也不要为了赶进度跳过动手环节。

每周结束时,可以用三个问题自查:这一周学到的类型写法,我在自己的代码里用过吗?遇到报错时,我是自己读懂的还是靠搜索绕过去的?如果现在合上书,我能向别人讲清楚这一周最核心的那个概念吗?三个问题里只要有一个答不上来,就值得回头补一补再往下走。

如果你的时间只有一半,可以把第 5 周和第 7 周压缩合并,先跳过构建工具与 Monorepo 的细节——它们更接近「按需查阅」的内容,等到项目里真的用上再回来补即可。

需要说明的是,这份计划的顺序刻意把「类型建模」(第 5–7 章)放在很早的位置,而不是按章节编号一路平推。原因是这一部分决定了你后续所有代码的写法:先建立起「用类型描述业务」的习惯,后面学到的泛型与工具类型才有地方落地;反过来先学一堆类型技巧、却不知道用在哪,很快就会忘。

各部分之间的依赖关系

五个部分不是平行关系,而是层层依赖的。下面这张表说明每一部分依赖什么、又被谁依赖,方便你判断能否跳过某一部分:

部分依赖被依赖能否跳过
第一部分 基础与起步无全部后续部分有 JS 基础者可速读
第二部分 类型建模第一部分第三、四、五部分不建议跳过
第三部分 类型系统进阶第二部分第四、五部分(部分章节)可延后,但读库源码前需补
第四部分 运行时与工程实践第一部分第五部分按工作内容选读
第五部分 全栈实战全部前四部分无可在有项目时再读

一个实用的判断原则是:类型建模(第二部分)是绕不过去的地基,其余部分都可以根据你的实际工作来取舍。如果你的项目里已经有人在写泛型工具类型,第三部分值得尽早补上;如果你只负责写业务组件,第四部分的前半(模块、声明文件)比后半(构建、Monorepo)更急。

分部分章节

下面按五个部分列出全部 18 章 54 节,每一行给出编号、标题与一句话说明。

表格里的编号规则是「章.节」,例如 7.2 表示第 7 章第 2 节。点击标题即可进入该节正文。每个部分开头都有一段导读,说明这一部分在整个学习曲线中的位置;如果你只想知道某节讲什么,直接看表格第三列的说明即可。

需要提醒的是,正文的每一节都遵循「本节目标 → 正文小节 → 小结 → 衔接下一节」的四段式结构,所以即使你从中间某节切入,也能通过开头的目标说明快速建立上下文,不必担心前情缺失。

第一部分:基础与起步(第 1–4 章)

这一部分解决「是什么、怎么装、怎么写」三个前置问题,读完能独立写出并运行带类型的程序。

节奏上,这一部分刻意放慢了。第 1 章花了不少篇幅讲历史与定位,看起来与写代码无关,但它决定了你后面怎么看类型擦除、怎么理解编译期与运行期的分工。如果时间紧张,第 1 章的 1.1 和 1.2 至少不要跳。第 2 章的环境配置建议一次做对,后面每一节的示例都依赖它。第 3、4 章是语法密度最高的两章,可以边读边查,不必强求记住所有细节。

编号章节说明
1.1TypeScript 的诞生与设计目标从 JavaScript 的规模化痛点出发,理解这门语言为何被创造
1.2与 JavaScript 的关系(超集·类型擦除)厘清超集关系与类型擦除,建立编译期与运行期的分工认知
1.3适用场景与生态版图看清哪些项目适合用 TypeScript,以及它在生态中的位置
2.1安装 Node.js、TS 与编辑器配置搭好本机环境,让编辑器具备类型提示与报错能力
2.2tsc 与 tsconfig.json 初探掌握编译命令与核心配置项的含义与作用
2.3第一个项目:从零到运行从空目录到可运行程序,走通完整的开发流程
3.1原始类型与类型注解掌握基本类型与注解写法,理解类型推断何时接管
3.2数组、元组与枚举描述有序集合、固定长度结构与有限取值集合
3.3any·unknown·never·void 与类型断言分清几个特殊类型的适用边界,以及断言的代价
4.1签名、可选参数与默认值为函数建立清晰、可被工具校验的输入输出契约
4.2重载、this 类型与箭头函数处理多形态函数与 this 指向带来的类型问题
4.3泛型函数入门用类型参数写出不丢失信息的多态函数

第二部分:类型建模(第 5–7 章)

这一部分是全书的核心。它教你如何用类型描述业务里的对象、状态与分支,是从「加注解的 JS」迈向「类型驱动设计」的分水岭。

编号章节说明
5.1interface 定义对象结构用接口描述对象的形状、可选性与只读约束
5.2type 别名、联合与交叉掌握类型别名的能力,以及联合与交叉的组合方式
5.3结构化类型与两者取舍理解结构类型系统,并给出 interface 与 type 的选型标准
6.1类、访问修饰符与参数属性用类组织行为,并用修饰符控制可见性
6.2继承、抽象类与多态建立继承层次,并用类型表达多态行为
6.3接口实现与 mixin用 implements 约束契约,用 mixin 组合可复用行为
7.1联合类型与字面量类型用字面量集合表达有限取值,替代松散的字符串约定
7.2判别联合(Discriminated Unions)用一个判别字段建模状态与变体,让非法状态无法表达
7.3类型守卫与控制流分析让编译器跟随你的分支判断逐步收窄类型

第三部分:类型系统进阶(第 8–10 章)

这一部分把类型当作一门小语言来写:泛型、映射类型、条件类型。它们是读懂流行库类型定义的基础,也是把重复类型代码收敛成工具的关键。

编号章节说明
8.1泛型约束(extends)用约束限定类型参数的能力范围,兼顾灵活与安全
8.2泛型默认值与类型推断让泛型既有合理的默认值,又不妨碍自动推断
8.3泛型在接口·类·函数中的协同在三类载体之间统一使用泛型,避免类型信息丢失
9.1keyof·typeof 与索引访问类型从既有值反推类型,并安全地按索引访问成员
9.2映射类型与键重映射(as)批量变换对象类型,并用 as 重命名或过滤键
9.3条件类型与 infer用条件类型做类型层面的分支,并用 infer 提取内部类型
10.1内置工具类型全解吃透 Partial、Pick、Record 等内置类型的适用场景
10.2模板字面量类型在类型层面拼接与校验字符串,约束命名与格式
10.3递归类型与类型性能治理处理递归结构,并识别与治理编译性能陷阱

第四部分:运行时与工程实践(第 11–16 章)

这一部分离开语法,进入真实工程:模块解析、声明文件、运行时校验、错误处理、测试与构建。它回答的是「类型写完之后,项目怎么跑起来、怎么保证不出事」。

编号章节说明
11.1ES 模块与模块解析理解模块语法与编译器如何找到你引用的文件
11.2ESM/CJS 互操作与 moduleResolution处理两套模块体系的互通与解析策略差异
11.3npm 包、类型声明与 exports让你的包在发布后类型仍然对使用者可用
12.1.d.ts 与 @types 机制理解声明文件的来源、查找顺序与加载规则
12.2为无类型库编写声明手写声明文件,安全接入没有类型的老依赖
12.3模块扩充与全局类型增强扩展第三方类型与全局对象,并控制影响范围
13.1类型擦除带来的运行时盲区认清类型系统管不到的边界,理解线上事故的根源
13.2Zod 模式验证与类型推导用校验库从运行时模式反向推导出静态类型
13.3API 契约与边界数据校验在系统边界建立校验防线,让不可信数据变成可信类型
14.1错误类型与 Result 模式用类型显式表达「可能失败」,而不是依赖异常约定
14.2Promise 与 async/await 的类型掌握异步流程的类型表达与常见陷阱
14.3并发控制、取消与超时为并发操作加上类型化的取消与超时机制
15.1单元测试(Vitest/Jest)用类型友好的测试框架编写与组织测试
15.2类型测试(tsd/expect-type)为类型本身写测试,防止类型定义悄悄退化
15.3覆盖率、lint 与 CI 门禁把类型检查、lint 与覆盖率接入持续集成
16.1编译目标与严格模式配置调好编译目标与严格度,平衡安全与成本
16.2esbuild/swc/tsup 与打包产物选择合适的打包方案,理解产物形态的差异
16.3Monorepo 与 Project References管理多包仓库的编译依赖与增量构建

第五部分:全栈实战(第 17–18 章)

最后一部分把前面的知识组织成一个完整工程,并回答两个收尾问题:老项目怎么迁,之后往哪走。

编号章节说明
17.1项目结构与分层设计用类型强化分层边界,让架构约束可被检查
17.2前后端共享类型与 API 契约让前后端共用一份契约,消除接口字段的猜测
17.3部署、发布与版本演进处理发布过程中的类型兼容与破坏性变更
18.1JavaScript 项目渐进式迁移一步步把老项目迁到类型安全,而不是推倒重来
18.2类型驱动的重构与团队规范借类型推动重构,并把经验固化为团队规范
18.3学习路径与生态选型规划读完本书之后的成长路线与工具选型

前置与附录

前置三篇负责交代背景与体例,附录四篇负责速查与排错。建议第一次通读时先跳过附录,遇到具体问题再回来翻。

位置标题说明
序《TypeScript编程入门》序为什么今天还值得学 TypeScript,以及本书的写法取舍
前言《TypeScript编程入门》前言目标读者、前置知识、体例说明与代码约定
目录《TypeScript编程入门》目录全书导航与学习路径(即本页)
附录 ATypeScript 语法速查表常用语法与写法的集中速查
附录 B内置工具类型与常用类型模式内置工具类型清单与高频类型模式
附录 C常用工具、库与资源生态工具、库与学习资源的选型参考
附录 D常见问题与解决方案(FAQ)高频报错与疑难问题的排查思路

相关专题

本书之外,本站还有若干 TypeScript 专题文章,可作为读完之后的延伸阅读。它们与本书的章节有明确对应关系:

延伸阅读对应本书章节
TypeScript 类型层编程与第 9、10 章呼应,深入类型体操的工程化用法
TypeScript 运行时校验与第 13 章呼应,展开校验库的选型与落地
TypeScript 项目架构与 tsconfig与第 2、16 章呼应,讲解真实项目的配置组织
TypeScript 测试的类型安全与第 15 章呼应,深入类型测试与测试架构
JavaScript 到 TypeScript 的迁移与第 18 章呼应,给出迁移的实战步骤

常见问题速查

下面是读者最常问的几个「该读哪一节」的问题,直接给答案:

你的问题去哪一节
环境装不上、编辑器不报错2.1 安装 Node.js、TS 与编辑器配置
不知道 tsconfig 各项什么意思2.2 tsc 与 tsconfig.json 初探、16.1 编译目标与严格模式配置
分不清 interface 和 type 该用哪个5.1、5.2、5.3 三节连着读
后端返回的数据类型对不上13.1 运行时盲区、13.3 API 契约与边界数据校验
一堆 if 判断状态,越写越乱7.2 判别联合,这是最直接的解药
想知道 Partial、Pick 怎么用10.1 内置工具类型全解、附录 B
第三方库没有类型定义12.1 .d.ts 与 @types 机制、12.2 为无类型库编写声明
老项目想迁 TypeScript 又怕出事18.1 JavaScript 项目渐进式迁移
团队该怎么定类型规范18.2 类型驱动的重构与团队规范
类型报错看不懂3.3、13.1,并参考附录 D 常见问题

如果你遇到的问题不在表里,可以先用目录里的关键词搜索定位章节,再结合每节的「本节目标」判断是否命中。

读完本书之后

读完全书并不意味着结束。类型系统是一门需要在项目里持续打磨的手艺,真正让知识固化的,是你把它用在自己的代码上。给几条后续建议:

  • 找一个真实项目练手。哪怕是一个小工具、一个 CLI 脚本,把它完整地用 strict 模式写一遍,收益远大于再读一遍书。
  • 读一读你依赖的库的类型定义。很多流行库的 .d.ts 本身就是优秀类型设计的范本,第 9、10 章学到的技巧会在里面反复出现。
  • 把类型当作沟通工具。在代码评审中,试着用类型来表达你的设计意图,而不只是用它来通过编译。
  • 保持对「过度设计」的警惕。类型能力越强,越容易写出没人看得懂的抽象。记住本书反复强调的那条原则:可维护优先于巧妙。

小结

这一页的核心信息可以浓缩成三句话:

  • 结构上,全书是「前置 3 篇 + 五部分 18 章 54 节 + 附录 4 篇」,共 61 篇,按学习曲线递进组织。
  • 路径上,零基础按顺序读,有 JS 基础从第 5 章切入,急于上手则集中读 8 节速成清单,已会用可当参考手册查。
  • 方法上,每一节都遵循「本节目标 → 正文 → 小结 → 衔接」的四段式,任何一节都可以独立阅读。

如果你已经选好了路径,可以直接从对应的章节开始。每一节的末尾都会指向下一节,跟着走不会迷路。

祝你读得顺利。

最后再重复一句:本页不需要从头读到尾。它的作用是「在你需要的时候,三秒钟内把你送到正确的那一节」。把这一页加进书签,比记住任何章节编号都有用。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「typescript」更多文章

  1. 《TypeScript高级编程》11.3 类型驱动架构与团队规范
  2. 《TypeScript高级编程》11.2 渐进式迁移与严格化路径
  3. 《TypeScript高级编程》11.1 TS 版本演进与 breaking changes