01 | 重塑“类型思维”02 | 类型基础(1):强类型与弱类型03 | 类型基础(2):动态类型与静态类型04 | 编写你的第一个TypeScript程序05 | 基本类型06 | 枚举类型07 | 接口(1):对象类型接口08 | 接口(2):函数类型接口09 | 函数相关知识点梳理10 | 类(1):继承和成员修饰符11 | 类(2):抽象类与多态12 | 类与接口的关系13 | 泛型(1):泛型函数与泛型接口14 | 泛型(2):泛型类与泛型约束15 | 类型检查机制(1):类型推断16 | 类型检查机制(2):类型兼容性17 | 类型检查机制(3):类型保护18 | 高级类型(1):交叉类型与联合类型19 | 高级类型(2):索引类型20 | 高级类型(3):映射类型21 | 高级类型(4):条件类型
22 | ES6与CommonJS的模块系统23 | 使用命名空间24 | 理解声明合并25 | 如何编写声明文件26 | 配置tsconfig.json(1):文件选项27 | 配置tsconfig.json(2):编译选项28 | 配置tsconfig.json(3):工程引用29 | 编译工具:从ts-loader到Babel30 | 代码检查工具:从TSLint到ESLint31 | 使用Jest进行单元测试
32 | 创建项目33 | 组件与类型(1):函数组件与类组件34 | 组件与类型(2):高阶组件与Hooks35 | 事件处理与数据请求36 | 列表渲染与路由37 | Redux与类型38 | 搭建服务端开发环境39 | 列表的CRUD40 | 导出Excel41 | 搭建Vue开发环境42 | 组件封装43 | 组件发布44 | 共存策略45 | 宽松策略46 | 严格策略47 | 结课测试&结束语