《TypeScript编程入门》全 61 节,是一套面向零基础的 TypeScript 完整教材:从「为什么需要 TypeScript」讲到类型系统全貌,再落到工程实践与全栈项目。
本页是《TypeScript编程入门》的全书目录:按章节顺序列出全部 61 节,点击标题直达正文。也可以从各节的「上一篇 / 下一篇」按顺序通读。
全书概览
| 项目 | 内容 |
|---|---|
| 书稿 | 《TypeScript编程入门》 |
| 章节数 | 61 节 |
| 领域 | TypeScript 语言基础与类型系统 |
| 阅读方式 | 从「目录」篇进入按顺序通读,或按章节表跳读 |
| 上级专题 | 书稿专题 |
全书目录
前置:序、前言与目录
| 节 | 文章 | 核心内容 |
|---|---|---|
| — | 《TypeScript编程入门》序 | 《TypeScript编程入门》的序。为什么在类型化 JavaScript 的今天依然值得系统学习 … |
| — | 《TypeScript编程入门》前言 | 《TypeScript编程入门》前言:说明本书的目标读者与前置知识、五部分 18 章的结构分工、每节… |
| — | 《TypeScript编程入门》目录 | 《TypeScript编程入门》全书导航页:说明本书定位、读者画像与前置知识、三条学习路径与各部分之… |
第 1 章 认识 TypeScript
| 节 | 文章 | 核心内容 |
|---|---|---|
| 1.1 | 1.1 TypeScript 的诞生与设计目标 | 本节从 2010 年前后大型 JavaScript 应用的维护困境讲起,梳理 TypeScript … |
| 1.2 | 1.2 与 JavaScript 的关系(超集·类型擦除) | 本节回答一个新手最容易搞混的问题:TypeScript 和 JavaScript 到底是什么关系。我… |
| 1.3 | 1.3 适用场景与生态版图 | 本节把 TypeScript 放回真实的技术版图:先给出判断「何时收益最大、何时不划算」的几条标准,… |
第 2 章 开发环境与工具链
| 节 | 文章 | 核心内容 |
|---|---|---|
| 2.1 | 2.1 安装 Node.js、TS 与编辑器配置 | 本节从零搭建 TypeScript 开发环境:先讲清为什么必须先装 Node.js,再对比官方安装包… |
| 2.2 | 2.2 tsc 与 tsconfig.json 初探 | 本节拆开 TypeScript 编译器 tsc 与它的配置文件 tsconfig.json。先运行 … |
| 2.3 | 2.3 第一个项目:从零到运行 | 本节把零散知识组装成一个能跑起来的完整项目:命令行温度换算器。从创建目录、初始化 npm、安装 ty… |
第 3 章 基本类型系统
| 节 | 文章 | 核心内容 |
|---|---|---|
| 3.1 | 3.1 原始类型与类型注解 | 本节从 TypeScript 的原始类型讲起,逐一介绍 string、number、boolean、… |
| 3.2 | 3.2 数组、元组与枚举 | 本节讲透 TypeScript 里三种「复数形态」的类型:数组、元组与枚举。先对比 T[] 与 Ar… |
| 3.3 | 3.3 any·unknown·never·void 与类型断言 | 本节处理类型系统里的四个边界类型:any、unknown、never、void。先说明 any 为什… |
第 4 章 函数与作用域
| 节 | 文章 | 核心内容 |
|---|---|---|
| 4.1 | 4.1 签名、可选参数与默认值 | 函数是 TypeScript 程序的基本构件,而函数签名则决定了调用方能看到什么、编译器能替你检查什… |
| 4.2 | 4.2 重载、this 类型与箭头函数 | 一个函数在类型层面可以有多个签名,这就是函数重载。本节先讲清重载签名与实现签名的分工、匹配顺序以及常… |
| 4.3 | 4.3 泛型函数入门 | 泛型是 TypeScript 类型系统里最重要的复用机制。本节从「同一段逻辑要处理多种类型」这个朴素… |
第 5 章 接口与类型别名
| 节 | 文章 | 核心内容 |
|---|---|---|
| 5.1 | 5.1 interface 定义对象结构 | 本节从「如何描述一个对象长什么样」这个问题出发,系统讲解 interface 的定义方式与核心能力:… |
| 5.2 | 5.2 type 别名、联合与交叉 | 本节讲解 type 别名的定义方式与它相对 interface 的独有能力:给联合类型、交叉类型、元… |
| 5.3 | 5.3 结构化类型与两者取舍 | 本节回答两个贯穿全章的问题:为什么 TypeScript 只比较类型结构、不比较类型名字,以及 in… |
第 6 章 类与面向对象
| 节 | 文章 | 核心内容 |
|---|---|---|
| 6.1 | 6.1 类、访问修饰符与参数属性 | 本节讲解 TypeScript 的类相比 JavaScript 多出了什么:访问修饰符如何约束成员的… |
| 6.2 | 6.2 继承、抽象类与多态 | 本节讲解 TypeScript 中类的继承与多态:如何用 extends 与 super 复用父类行… |
| 6.3 | 6.3 接口实现与 mixin | 本节讲解 TypeScript 中类与接口的两条连接方式:用 implements 让一个类同时承诺… |
第 7 章 联合类型与类型收窄
| 节 | 文章 | 核心内容 |
|---|---|---|
| 7.1 | 7.1 联合类型与字面量类型 | 本节先讲联合类型,说明如何用「A | B」表达取值可能是若干形态之一,再引入字面量类型,把具体的字符… |
| 7.2 | 7.2 判别联合(Discriminated Unions) | 本节讲解判别联合,也就是给联合的每个成员加一个共同的判别字段,让编译器能顺着这个字段自动区分当前处于… |
| 7.3 | 7.3 类型守卫与控制流分析 | 本节讲解当数据结构本身没有判别字段时,如何通过运行期检查把联合类型收窄到具体成员。内容涵盖 type… |
第 8 章 泛型进阶
| 节 | 文章 | 核心内容 |
|---|---|---|
| 8.1 | 8.1 泛型约束(extends) | 本节承接泛型函数入门,讲清为什么裸泛型在函数体里几乎什么都做不了,以及 extends 关键字如何把… |
| 8.2 | 8.2 泛型默认值与类型推断 | 本节讲清泛型默认值的语法、求值顺序,以及默认值必须满足约束这条硬规则。随后系统梳理类型推断的四个来源… |
| 8.3 | 8.3 泛型在接口·类·函数中的协同 | 本节把泛型从函数扩展到接口与类,讲清三者各自声明类型参数的位置与作用域,解释为什么静态成员不能用类的… |
第 9 章 高级类型
| 节 | 文章 | 核心内容 |
|---|---|---|
| 9.1 | 9.1 keyof·typeof 与索引访问类型 | 本节讲解 TypeScript 类型编程的三块基石:用 keyof 取出对象类型的全部键名,用 ty… |
| 9.2 | 9.2 映射类型与键重映射(as) | 本节讲解映射类型:如何用 [K in keyof T] 遍历一个类型的所有键并批量生成新类型,如何用… |
| 9.3 | 9.3 条件类型与 infer | 本节讲解类型运算的最后一块拼图:条件类型 T extends U ? X : Y 如何充当类型层面的… |
第 10 章 类型体操与工具类型
| 节 | 文章 | 核心内容 |
|---|---|---|
| 10.1 | 10.1 内置工具类型全解 | 本节把 TypeScript 标准库里的内置工具类型逐个拆开:从对象修饰的 Partial、Requ… |
| 10.2 | 10.2 模板字面量类型 | 本节讲解模板字面量类型如何把字符串拼接搬进类型系统:用反引号加 ${} 构造字面量模式,与联合类型组… |
| 10.3 | 10.3 递归类型与类型性能治理 | 本节讲类型层面的最后一块硬骨头:递归类型如何用「自我引用加终止条件」描述 JSON、树与深层修饰;编… |
第 11 章 模块与包管理
| 节 | 文章 | 核心内容 |
|---|---|---|
| 11.1 | 11.1 ES 模块与模块解析 | 本节从模块化的历史讲起,说明为什么全局脚本会互相污染、ES 模块如何用显式的 export 与 im… |
| 11.2 | 11.2 ESM/CJS 互操作与 moduleResolution | 现实项目里 ES 模块与 CommonJS 长期并存,本节讲清两者如何互相调用。先看 package… |
| 11.3 | 11.3 npm 包、类型声明与 exports | 本节从使用者视角切换到包作者视角,讲清一个 npm 包如何被 TypeScript 正确识别。先看 … |
第 12 章 声明文件与类型扩展
| 节 | 文章 | 核心内容 |
|---|---|---|
| 12.1 | 12.1 .d.ts 与 @types 机制 | 本节从类型擦除讲起,解释为什么编译产物 .js 里不剩任何类型信息、消费方却依然能获得完整补全,从而… |
| 12.2 | 12.2 为无类型库编写声明 | 本节讲的是 .d.ts 的实战编写:当一个库既没有自带类型、社区也没有 @types 包时,如何从 … |
| 12.3 | 12.3 模块扩充与全局类型增强 | 本节讲 TypeScript 最易被误用的一项能力:不新建声明,而是往已有类型上「长」成员。先讲清声… |
第 13 章 运行时验证与类型安全边界
| 节 | 文章 | 核心内容 |
|---|---|---|
| 13.1 | 13.1 类型擦除带来的运行时盲区 | 本节从类型擦除讲起:TypeScript 编译时会把 interface、类型注解与断言全部抹掉,只… |
| 13.2 | 13.2 Zod 模式验证与类型推导 | 本节介绍如何在运行时检查数据形状:用 Zod 声明 schema,用 z.infer 让编译期类型自… |
| 13.3 | 13.3 API 契约与边界数据校验 | 本节把校验真正落到工程上:先列出一份完整的边界清单,再逐个给出落地方式——环境变量启动期校验并 fa… |
第 14 章 错误处理与异步编程
| 节 | 文章 | 核心内容 |
|---|---|---|
| 14.1 | 14.1 错误类型与 Result 模式 | 本节把「错误」当成类型问题来讨论:为什么 catch 的参数只能是 unknown,如何用自定义错误… |
| 14.2 | 14.2 Promise 与 async/await 的类型 | 本节把 Promise 当成带类型参数的状态机来拆解:Promise |
| 14.3 | 14.3 并发控制、取消与超时 | 本节解决异步编程里最容易被忽略的三个问题:并发数不受控、任务无法取消、请求没有超时。我们手写一个泛型… |
第 15 章 测试与质量保障
| 节 | 文章 | 核心内容 |
|---|---|---|
| 15.1 | 15.1 单元测试(Vitest/Jest) | 本节从零为 TypeScript 项目搭起单元测试:先比较 Vitest 与 Jest 的取舍,再手… |
| 15.2 | 15.2 类型测试(tsd/expect-type) | 本节讲一个常被忽视的话题:类型本身也要写测试。先说明运行时断言为什么测不到类型,再用 @ts-exp… |
| 15.3 | 15.3 覆盖率、lint 与 CI 门禁 | 本节是第 15 章收官,把零散的测试变成系统性防线:先厘清语句、分支、函数、行四种覆盖率口径与阈值配… |
第 16 章 构建与工程配置
| 节 | 文章 | 核心内容 |
|---|---|---|
| 16.1 | 16.1 编译目标与严格模式配置 | 本节把 tsconfig.json 里最容易配错的两组选项讲透:编译目标与严格模式。先看 targe… |
| 16.2 | 16.2 esbuild/swc/tsup 与打包产物 | 本节解释为什么 tsc 不再是唯一的编译路径,并对比 esbuild、swc、tsup 三类工具的定… |
| 16.3 | 16.3 Monorepo 与 Project References | 本节解决「多个包如何在一个仓库里协同」这件事。先说清什么时候真的需要 Monorepo,再用一个 p… |
第 17 章 全栈项目实战
| 节 | 文章 | 核心内容 |
|---|---|---|
| 17.1 | 17.1 项目结构与分层设计 | 本节把前面散落的语言知识收拢成一个能交付的项目骨架:先对比按类型、按功能、按层三种组织方式的代价,再… |
| 17.2 | 17.2 前后端共享类型与 API 契约 | 本节解决全栈项目里最费神的一类问题:同一份数据结构在前后端被写了两遍。我们先比较手工复制、共享包、代… |
| 17.3 | 17.3 部署、发布与版本演进 | 本节把写好的 TypeScript 代码真正送上生产:先讲清构建产物与运行时的差异,对比静态托管、长… |
第 18 章 大型项目架构与迁移
| 节 | 文章 | 核心内容 |
|---|---|---|
| 18.1 | 18.1 JavaScript 项目渐进式迁移 | 本节讲解如何在不推倒重来的前提下,把类型系统逐步铺进一个存量 JavaScript 项目。内容包括三… |
| 18.2 | 18.2 类型驱动的重构与团队规范 | 本节讲如何把类型系统从「编译能过」升级为「持续重构的引擎」。内容包括编译器作为重构安全网的原理、用 … |
| 18.3 | 18.3 学习路径与生态选型 | 本节是全书的收尾,先给出一张覆盖 18 章的知识地图与能力自评表,再按前端应用、Node 后端、库与… |
附录
| 节 | 文章 | 核心内容 |
|---|---|---|
| — | 附录 A TypeScript 语法速查表 | 本附录是一份可随时翻阅的 TypeScript 语法速查表:用表格对照原始类型与字面量、数组元组枚举… |
| — | 附录 B 内置工具类型与常用类型模式 | 本附录分两部分:先给出一份内置工具类型全解,逐个列出签名、作用、等价手写实现与典型用例;再整理品牌类… |
| — | 附录 C 常用工具、库与资源 | 本附录按类别汇总 TypeScript 生态里的常用工具与库:编译器与运行时、打包构建、类型检查与 … |
| — | 附录 D 常见问题与解决方案(FAQ) | 本附录汇总初学者最常撞上的十三类 TypeScript 报错与困惑,覆盖模块找不到声明、属性不存在、… |