本课程使用指南(先读这里)
TypeScript 零基础学习路线:环境先行、跳过规则、分层阅读路径与验收标准。
0.1 TypeScript 类型能力速查
从 JavaScript 到 TypeScript 的升级路径
| JavaScript 写法 | TypeScript 增强 | 解决的问题 | 学习位置 |
|---|---|---|---|
let count = 0 | 类型推断为 number | 减少显式标注,保留类型安全 | 基础类型系统 |
function add(a, b) | function add(a: number, b: number): number | 防止参数和返回值误用 | 函数类型 |
| 普通对象 | interface User { id: string; name: string } | 约束数据结构 | 接口与类型别名 |
| 任意数组 | Array<User> 或 User[] | 约束集合元素类型 | 泛型基础 |
| 字符串分支 | `‘loading’ | ‘success’ | ‘error’` |
| 手写校验 | 自定义类型守卫 | 让运行时判断反馈给类型系统 | 类型守卫 |
第一周必须掌握的编译器选项
| 选项 | 推荐值 | 为什么重要 |
|---|---|---|
strict | true | 一次打开严格空值、函数参数、隐式 any 等检查 |
noImplicitAny | true | 避免类型系统退化成普通 JavaScript |
strictNullChecks | true | 区分空值和正常值,减少线上空指针错误 |
moduleResolution | bundler 或 node16 | 与现代构建工具或 Node ESM 对齐 |
noEmit | 按项目决定 | 只做类型检查时交给 Vite、tsup 或 swc 输出 |
类型设计小练习
ts
type CourseStatus = 'draft' | 'published' | 'archived';
interface Course {
id: string;
title: string;
status: CourseStatus;
lessons: number;
}
function canPublish(course: Course): boolean {
return course.status === 'draft' && course.lessons > 0;
}练习重点不是语法,而是把业务约束提前写进类型,让编辑器在保存前发现错误。
0. 这份资料怎么用
本模块有 75 篇文档,文件名前缀(010、020……730)大致就是学习顺序。不要跳着读,也不要一次读完。文档分三类:
必读(零基础主线,约 3-4 周)
- TypeScript 概述与环境配置:先装环境、跑通第一个 TypeScript 程序;
- 变量与基础类型到泛型基础:变量、函数、类、泛型四篇前篇;
- 基础类型系统到索引签名与动态属性:类型系统核心(接口、字面量与联合、交叉、枚举、守卫);
- 类型兼容性、类型推断深入、as const、never 语义:理解”为什么能赋值、为什么报错”;
- 命名空间与模块到模块声明与全局类型增强:声明文件与模块解析;
- 工程化配置、项目示例:API 客户端、项目实战:TODO 应用:工程化与实战收尾。
按需查阅(遇到问题再回来看)
- 高频疑问 FAQ:高频疑问合集,先查这里再搜;
- tsc 编译命令速查:tsc 命令速查;
- 类型测试与断言:类型测试与断言;
- 环境配置末尾的核心术语表与进阶新特性速览。
进阶原理(有项目经验后再读)
- 类型论与理论:TypeScript 理论知识点、satisfies 的形式语义、协变与逆变、this 类型与多态;
- 类型体操:实用模式、深水区、条件类型三部曲、模板字面量类型;
- 编译器与性能:编译与性能优化、TS 6.0 与 7.0。
1. 为什么环境配置排在最前面
早期版本把”概述与环境配置”排在四篇前篇之后,零基础学习者会在前四篇里反复追问:“我写的代码在哪里运行?tsc 是什么?“。本版已经调整:第 01 课先装环境、跑通 tsc,再学语法。语法学完立刻能在真实工程里验证,认知负担最小。
flowchart LR
A["020 本指南"] --> B["030 环境配置<br/>跑通 tsc"]
B --> C["040-070 前篇<br/>变量/函数/类/泛型"]
C --> D["080-150 类型系统核心"]
D --> E["160-200 兼容性/推断/const/never"]
E --> F["290-350 声明文件/模块/工程配置"]
F --> G["690-700 项目实战"]
G --> H["370/550/720 命令/类型测试/FAQ 按需查阅"]2. 三条阅读规则
规则一:环境先行。 先读环境配置并完成安装;前四篇前篇里的每一段代码都建议放进自己的工程里跑一遍,而不是只读。
规则二:看到公式直接跳过。 少数进阶文档会使用类型论记号(如 Γ ⊢ e : τ)。零基础第一遍只读代码示例、表格和”动手试试”,公式一律跳过。正文不再出现这类记号,需要了解时再看各篇文末的”进阶附录”(如基础类型系统附录 A)。
规则三:新特性速览可跳过。 环境配置末尾的 TS 5.x 新特性速览(const 类型参数、satisfies、using、NoInfer 等)是给有基础的人看的,第一遍读到正文”9. 总结”即可。satisfies 与 as const 都有独立成篇的系统讲解(satisfies 操作符、as const 完整讲解)。
3. 术语不认识怎么办
4. 常见误区
| 误区 | 真相 |
|---|---|
| 把语法全部背下来 | 语法随用随查,重点是理解类型规则 |
| 跳过环境搭建直接看代码 | 没有运行环境,代码无法验证,学完就忘 |
| 一上来读类型体操 | 先会写业务类型,再学条件类型与体操 |
| 看到公式就觉得自己学不会 | 公式是进阶附录,跳过不影响主线 |
| 只读不敲 | 每段代码都亲手敲一遍,改一改看报错 |
5. 预期时间与验收标准
| 阶段 | 预期时间 | 验收标准 |
|---|---|---|
| 第 1 周(030-070 前篇) | 6-8 小时 | 能独立初始化 tsconfig,写出带类型的变量、函数、类、泛型代码 |
| 第 2 周(080-200 类型系统) | 6-8 小时 | 能解释”为什么这个赋值合法”,会用类型守卫和索引签名 |
| 第 3 周(290-350 模块与工程) | 5-7 小时 | 能读懂 .d.ts,正确使用 import type 与模块解析配置 |
| 第 4 周(690-700 项目实战) | 8-10 小时 | 能独立完成 TODO 项目实战,并解释关键类型设计 |
6. 一句话记住
先跑通环境,再学语法;公式跳过、代码必敲;遇到问题先查 FAQ 和术语表。