TypeScript
前端开发 · 预计 3-5 周 · 4 阶段
TypeScript 已成为前端与 Node.js 生态的事实标准。路线图从基础类型出发,逐步掌握接口、泛型、类型收窄等核心能力,最终落实到真实工程实践(配置、迁移、与框架结合)。
下一阶段目标:基础类型(完成当前阶段后自动推进)
学习路线图按顺序学完每一阶段
点击阶段节点直达学习内容;绿色=已完成,彩色=当前阶段
当前阶段基础类型
核心知识点
本阶段学习内容
要点速记
- 字面量类型把值当类型,配合联合类型实现自动补全的常量枚举
- interface 描述对象契约(可继承/合并),type 组合复杂类型(联合/交叉)
- 类型收窄:typeof / instanceof / in / 可辨识联合让分支类型安全
- 元组是固定长度数组:[string, number]
本阶段练习题(点击选项作答)
1. type Status = 'idle' | 'loading' 属于什么写法?
2. interface 与 type 的区别,正确的是?
3. typeof x === 'number' 之后 TS 会怎么做?
练习任务
- 为一个小工具函数库编写完整类型标注
- 把 10 段 JS 代码改写成 TS 并消除 any
本阶段验收标准
函数与类
核心知识点
本阶段学习内容
要点速记
- 函数重载声明多组参数-返回组合,实现签名要兼容全部
- 类修饰符:public/private/protected/readonly/abstract
- 参数属性构造器写法:constructor(private x: number) 直接声明赋值
- private 是编译期检查;# 前缀才是 JS 运行时真私有
本阶段练习题(点击选项作答)
1. 函数重载的作用是?
2. abstract class 的特点?
练习任务
- 实现一个带重载的格式化工具
- 用类实现一个事件总线并标注类型
本阶段验收标准
泛型与高级类型
核心知识点
本阶段学习内容
要点速记
- 泛型把类型参数化,T extends X 是约束(传入类型必须有 X 的能力)
- 内置工具类型:Partial 可选 / Pick 选字段 / Omit 排除 / Record 构造
- ReturnType 取函数返回类型,keyof 取键联合
- 手写 Pick/Omit 是理解映射类型的钥匙
本阶段练习题(点击选项作答)
1. function first<T extends { length: number }>(arr: T): T 中约束表示?
2. Pick<User, 'id' | 'name'> 的结果是?
练习任务
- 手写实现 Pick / Omit / Readonly 工具类型
- 封装一个类型安全的 fetch 封装(泛型返回)
本阶段验收标准
工程实践
核心知识点
本阶段学习内容
要点速记
- strict: true 开启全家桶:noImplicitAny / strictNullChecks 等
- .d.ts 只描述类型不实现:declare module / declare global
- null/undefined 要显式处理(strictNullChecks)
- 新项目必须开 strict,老项目逐文件清零 any
本阶段练习题(点击选项作答)
1. strictNullChecks 开启后,string | null 类型变量的特点?
2. .d.ts 文件的作用是?
练习任务
- 从零配置一个 strict 模式的 TS 项目
- 为开源小库编写 .d.ts 声明文件
- 用 TS 写一个 CLI 小工具并发布 npm
本阶段验收标准
怎么学
学习方法与实操建议,配合路线图按阶段推进
- 1官方文档的「Handbook」按顺序精读一遍,配合 Playground 实时验证类型
- 2把已有 JS 小项目逐步改成 .ts,是记忆最牢的方式
- 3遇到报错先读类型定义(hover 查看),培养读类型的能力
- 4用「type-challenges」题库做专项训练(GitHub 上有中文题解)
学完能做什么
- 为任意 JS 代码写出完整类型标注
- 封装类型安全的工具库
- 在 React/Node 项目中应用泛型与高级类型
面试常见问题6 题
常见误区
- 1把 TS 当『带类型的 JS』用,从不写接口
- 2滥用 any 使类型保护形同虚设
- 3只学语法不做练习,看不懂报错信息
- 4跳过泛型,遇到复杂类型就放弃
学习节奏建议
预计 3-5 周,共 4 个阶段。
每阶段按标注时长安排:先读参考文档掌握核心知识点,再完成练习任务,通过 验收标准后标记完成进入下一阶段。
当前为游客模式,进度保存在本设备;登录后可云端同步、多端续学。
当前进度
进行中
下一阶段:基础类型