TypeScript

前端开发 · 预计 3-5 周 · 4 阶段

TypeScript 已成为前端与 Node.js 生态的事实标准。路线图从基础类型出发,逐步掌握接口、泛型、类型收窄等核心能力,最终落实到真实工程实践(配置、迁移、与框架结合)。

初级
学后可投:前端开发工程师全栈工程师Node 后端工程师
学习进度:已完成 0 / 4 阶段0%

下一阶段目标:基础类型(完成当前阶段后自动推进)

学习路线图按顺序学完每一阶段

TypeSc进度 0%● 当前 · 阶段 1基础类型阶段 2函数与类阶段 3泛型与高级类型阶段 4工程实践

点击阶段节点直达学习内容;绿色=已完成,彩色=当前阶段

1

当前阶段基础类型

2-3 天难度 入门

核心知识点

基本类型与字面量类型数组 / 元组 / 枚举interface 与 type联合类型与类型收窄

本阶段学习内容

要点速记

  • 字面量类型把值当类型,配合联合类型实现自动补全的常量枚举
  • interface 描述对象契约(可继承/合并),type 组合复杂类型(联合/交叉)
  • 类型收窄:typeof / instanceof / in / 可辨识联合让分支类型安全
  • 元组是固定长度数组:[string, number]

本阶段练习题(点击选项作答)

1. type Status = 'idle' | 'loading' 属于什么写法?

2. interface 与 type 的区别,正确的是?

3. typeof x === 'number' 之后 TS 会怎么做?

练习任务

  • 为一个小工具函数库编写完整类型标注
  • 把 10 段 JS 代码改写成 TS 并消除 any

本阶段验收标准

把 10 段 JS 改写为 TS 并消除 any,编译零错误
2

函数与类

3-5 天难度 初级

核心知识点

函数重载与可选参数this 类型类与抽象类装饰器(了解)

本阶段学习内容

要点速记

  • 函数重载声明多组参数-返回组合,实现签名要兼容全部
  • 类修饰符:public/private/protected/readonly/abstract
  • 参数属性构造器写法:constructor(private x: number) 直接声明赋值
  • private 是编译期检查;# 前缀才是 JS 运行时真私有

本阶段练习题(点击选项作答)

1. 函数重载的作用是?

2. abstract class 的特点?

练习任务

  • 实现一个带重载的格式化工具
  • 用类实现一个事件总线并标注类型

本阶段验收标准

实现一个带函数重载 + 类类型的工具并跑通类型检查
3

泛型与高级类型

4-7 天难度 中级

核心知识点

泛型函数与泛型约束工具类型(Partial / Pick / Omit)条件类型与 infer映射类型与模板字面量类型

本阶段学习内容

要点速记

  • 泛型把类型参数化,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 封装(泛型返回)

本阶段验收标准

手写 Pick/Omit 工具类型,封装泛型 fetch 返回强类型数据
4

工程实践

5-10 天难度 高级

核心知识点

tsconfig 配置与严格模式模块解析与声明文件(.d.ts)与 React / Node 框架集成类型测试(tsd / vitest)

本阶段学习内容

要点速记

  • 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

本阶段验收标准

从零配置 strict 项目,发布一个带 .d.ts 声明的 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 个阶段。

每阶段按标注时长安排:先读参考文档掌握核心知识点,再完成练习任务,通过 验收标准后标记完成进入下一阶段。

当前为游客模式,进度保存在本设备;登录后可云端同步、多端续学。

当前进度

0%
0 / 4 阶段
进行中

下一阶段:基础类型

📄 帮你写简历~
TypeScript 学习路线图 · 简历加分知识库 · 简历加分