https://roadmap.sh/typescript

https://roadmap.sh/typescript

TS 设计

TS 开发环境配置

tsx、ts-node、require-ts 等工具库的工作原理请参考:Node.js require extension

类型基础

原始类型、对象类型

type vs interface

字面量类型、枚举

函数类型、Class 类型

内置类型:any 、unknown 与 never

类型工具(操作符、关键字、专用语法)

工具类型、联合类型与交叉类型、索引类型与映射类型

类型工具 创建方式 常用搭配
类型别名(Type Alias) 将一组类型/类型结构封装,作为一个新的类型 联合类型、映射类型
工具类型(Tool Type) 在类型别名的基础上,基于泛型去动态创建新类型 基本所有类型工具
联合类型(Union Type) 创建一组类型集合,满足其中一个类型即满足这个联合类型(
交叉类型(Intersection Type) 创建一组类型集合,满足其中所有类型才满足映射联合类型(&&) 类型别名、工具类型
索引签名类型(Index Signature Type) 声明一个拥有任意属性,键值类型一致的接口结构 映射类型
索引类型查询(Indexed Type Query) 从一个接口结构,创建一个由其键名字符串字面量组成的联合类型 映射类型
索引类型访问(Indexed Access Type) 从一个接口结构,使用键名字符串字面量访问到对应的键值类型 类型别名、映射类型
映射类型 (Mapping Type) 从一个联合类型依次映射到其内部的每一个类型 工具类型

typeof 类型查询操作符类型守卫

泛型

类型的逻辑运算:条件类型、infer 和分布式条件类型

类型系统

结构类型系统 vs 标明类型系统

类型系统层级:Top Type 到 Bottom Type

反方向类型推导:上下文类型