typescript
- 1. 学习资料
- 2. TS 简介
- 3. 学前准备
- 4. 顶层类型和底层类型
- 5. 类型系统基础知识
- 6. 类型兼容性
- 7. 数组类型
- 8. 元组类型
- 9. 函数类型
- 10. 对象类型
- 11. 接口类型
- 12. Class 类型
- 13. 泛型
- 14. Enum 类型
- 15. 类型断言
- 16. 模块
- 17. namespace
- 18. 装饰器
- 19. 装饰器(旧语法)
- 20. declare 关键字
- 21. d.ts 类型声明文件
- 22. 类型运算
- 23. 类型工具
- 24. 注释指令
- 25. tsconfig.json 文件
- 26. tsc 命令
- 27. 实战技巧
- 28. 深入原理
- 29. 进阶话题
- 30. TS 7.0
- 31. 踩坑记录
- 32. xxx
1. 学习资料
- 0286. 学习资料
- 0002. TypeScript(阮一峰)
- 0289. typescript-book 项目
- 0290. clean-code-typescript 项目
- 0107. type-challenges 项目
- 0054. 术语表
- 0039. roadmap
- 0073. TS 官方文档
- 0074. TS Github 仓库
- 0017. 特殊类型之间的兼容性
- 0285. TS 错误码
- 0075. DefinitelyTyped 项目
2. TS 简介
- 0008. TS 简介
- 0001. TS 是什么
- 0003. TS 的发展简史
- 0005. TS 的博客
- 0006. 面向对象的思维方式
- 0007. 动态类型 vs. 静态类型
- 0076. TS 的优势与劣势
- 0077. TS 在前、后端领域的应用
3. 学前准备
- 0044. 学前准备
- 0004. 类型 vs. 值
- 0009. 类型声明和类型推断
- 0010. TS 的编译
- 0011. TS Playground
- 0012. tsc 快速入门
- 0078. tsconfig.json 快速入门
- 0013. ts-node 快速入门
- 0041. nodemon 快速入门
- 0042. ts-node-dev 快速入门
4. 顶层类型和底层类型
5. 类型系统基础知识
- 0287. 类型系统基础知识
- 0018. boolean 类型
- 0019. string 类型
- 0020. number 类型
- 0021. bigint 类型
- 0022. symbol 类型
- 0023. object 类型和 Object 类型
- 0024. undefined 类型和 null 类型
- 0047. 包装对象类型
- 0025. 字面量类型
- 0026. 联合类型
- 0027. 交叉类型
- 0028. type 关键字
- 0029. typeof 运算符
- 0030. 类型作用域
6. 类型兼容性
- 0031. 类型兼容性
- 0067. 结构子类型
- 0072. 类型的父子关系
- 0068. 对象类型的兼容性规则
- 0069. 函数类型的兼容性规则
- 0071. 类类型的兼容性规则
- 0070. 泛型类型的兼容性规则
- 0017. 特殊类型之间的兼容性
- 0080. 协变与逆变
- 0081. 双向协变问题
7. 数组类型
- 0032. 数组类型
- 0082. 数组的两种类型声明方式
- 0083. 只读数组 ReadonlyArray
- 0288. readonly 数组在函数参数中的兼容性差异分析
- 0084. 数组的类型推断
- 0085. 多维数组
8. 元组类型
9. 函数类型
- 0034. 函数类型
- 0091. 函数表达式类型
- 0092. 可选参数与默认参数
- 0093. 剩余参数
- 0094. 函数重载
- 0095. 构造函数类型
- 0096. 函数的 2 个特殊返回类型 void、never
- 0097. 函数的 this 参数
- 0098. 函数类型的多种声明方式
10. 对象类型
- 0033. 对象类型
- 0099. 对象只读属性
- 0100. 对象可选属性
- 0101. 对象索引签名
- 0102. 对象的额外属性检查
- 0103. 对象类型的扩展
- 0104. 使用 Record 工具类型约束对象
11. 接口类型
12. Class 类型
- 0035. class 类型
- 0066. 类属性严格初始化
- 0056. 类中的参数属性
- 0057. 抽象类
- 0058. 类中的存取器
- 0059. 类实现接口
- 0060. 类中的只读属性
- 0061. 类的静态成员
- 0062. 类的三个可访问性修饰符
- 0064. 类的继承
- 0063. 子类重写父类同名成员
- 0055. 类中的 this
- 0065. 类与函数的选择
- 0111. 类的类型
- 0114. 类的静态块
13. 泛型
14. Enum 类型
- 0037. Enum 类型
- 0130. 枚举 vs. 对象字面量 as const
- 0123. 数字枚举
- 0124. 字符串枚举
- 0227. 字符串枚举 vs 数字枚举
- 0125. 异构枚举
- 0126. 常量枚举(const enum)
- 0127. 外部枚举(ambient enum)
- 0129. 反向映射
15. 类型断言
16. 模块
- 0134. ES 模块系统
- 0135. CommonJS 模块系统
- 0136. 模块解析策略
- 0137. 相对导入 vs. 非相对导入
- 0138. 模块解析的 baseUrl 和 paths
- 0139. 导出和导入类型
- 0140. export type 和 import type
- 0141. 默认导出 vs. 命名导出
- 0142. 动态导入
- 0143. 模块的类型声明
- 0144. esModuleInterop 配置项
- 0145. allowSyntheticDefaultImports 配置项
17. namespace
- 0146. namespace 关键字
- 0147. 命名空间的基本使用
- 0148. 嵌套命名空间
- 0149. 命名空间的合并
- 0150. 命名空间 vs. 模块
- 0151. 何时使用命名空间
- 0152. 命名空间的别名
- 0153. 命名空间的导出
18. 装饰器
- 0154. 装饰器的概念
- 0155. 装饰器的启用(experimentalDecorators)
- 0156. 类装饰器
- 0157. 方法装饰器
- 0158. 访问器装饰器
- 0159. 属性装饰器
- 0160. 参数装饰器
- 0161. 装饰器的执行顺序
- 0162. 装饰器工厂
- 0163. 装饰器组合
19. 装饰器(旧语法)
20. declare 关键字
- 0169. declare 的作用
- 0170. declare 声明函数
- 0171. declare 声明变量
- 0172. declare 声明类
- 0173. declare 声明枚举
- 0174. declare 声明命名空间
- 0175. declare module 扩展模块
- 0176. declare global 扩展全局
- 0177. 环境声明的使用场景
21. d.ts 类型声明文件
- 0178. 类型声明文件的作用
- 0179. 自动生成 d.ts 文件
- 0180. 手动编写 d.ts 文件
- 0181. 三斜线指令
- 0182. @types 包的使用
- 0183. typeRoots 和 types 配置
- 0184. 模块的类型声明
- 0185. 全局类型声明
- 0186. UMD 模块的类型声明
- 0187. 发布类型声明文件
22. 类型运算
- 0229. 类型运算
- 0188. keyof 运算符
- 0189. in 运算符
- 0190. extends 条件类型
- 0191. infer 关键字
- 0192. 索引访问类型
- 0194. 条件类型的分布式特性
- 0195. 映射类型
- 0196. 模板字面量类型
- 0197. satisfies 运算符
23. 类型工具
- 0108. 类型工具
- 0205. Partial
- 0206. Required
- 0207. Readonly
- 0208. Record
- 0209. Pick
- 0210. Omit
- 0211. Exclude
- 0212. Extract
- 0213. NonNullable
- 0214. ReturnType
- 0215. Parameters
- 0216. ConstructorParameters
- 0217. InstanceType
- 0218. ThisParameterType
- 0219. OmitThisParameter
- 0220. Awaited
- 0230. 内置字符串操作类型
- 0221. 自定义工具类型
24. 注释指令
- 0228. 注释指令
- 0222. @ts-ignore
- 0223. @ts-expect-error
- 0291. @ts-ignore vs @ts-expect-error
- 0224. @ts-nocheck
- 0225. @ts-check
- 0226. JSDoc 类型注释
25. tsconfig.json 文件
- 0232. tsconfig.json 的作用
- 0233. 编译选项分类概览
- 0234. target 和 lib
- 0235. module 和 moduleResolution
- 0236. strict 模式
- 0237. strictNullChecks
- 0238. strictFunctionTypes
- 0239. noImplicitAny
- 0240. noImplicitThis
- 0241. alwaysStrict
- 0242. outDir 和 rootDir
- 0243. include 和 exclude
- 0244. files 选项
- 0245. extends 继承配置
- 0246. references 项目引用
- 0247. incremental 增量编译
- 0248. 常用编译配置组合
26. tsc 命令
- 0257. tsc 命令的基本用法
- 0258. tsc 常用参数
- 0259. tsc --watch 模式
- 0260. tsc --project 指定配置文件
- 0261. tsc --outDir 和 --outFile
- 0262. tsc --declaration 生成声明文件
- 0263. tsc --sourceMap 生成源码映射
- 0264. tsc --noEmit 只检查不输出
- 0265. tsc --showConfig 显示配置
- 0266. tsc --listFiles 列出编译文件
- 0267. tsc --init 初始化配置
27. 实战技巧
- 0268. 常见类型错误处理
- 0269. 类型收窄技巧
- 0270. 类型守卫的使用
- 0271. 类型推断的最佳实践
- 0272. 避免类型断言的滥用
- 0273. React 中的 TypeScript
- 0274. Vue 中的 TypeScript
- 0275. Node.js 中的 TypeScript
- 0276. 第三方库的类型处理
28. 深入原理
- 0045. 深入原理
- 0043. Source Map 的基本概念和原理
- 0249. TS 编译流程
- 0250. AST 抽象语法树
- 0251. 类型检查原理
- 0252. 类型擦除
- 0253. 声明空间与变量空间
- 0254. 类型系统的健全性
- 0255. 结构类型系统的实现
- 0256. 编译性能优化
29. 进阶话题
- 0277. 高级类型技巧
- 0278. 类型体操
- 0279. 类型安全的设计模式
- 0280. TS 与函数式编程
- 0281. TS 性能优化
- 0282. 大型项目的类型组织
- 0283. monorepo 中的 TypeScript