🔷 TypeScript 学习路线
200 个互动教程
TypeScript 入门 — JavaScript + 类型
了解 TypeScript:JS 超集、类型安全、为什么大项目都用它
TS 枚举
学习enum
TypeScript 接口 — 定义对象形状
用 interface 定义对象结构,约束属性和方法
TypeScript 泛型 — 可复用的类型
泛型让你写类型安全的可复用代码,告别 any
TypeScript 函数类型
函数参数类型、返回值类型、可选参数、剩余参数、函数重载
TypeScript 类 — 类型安全 OOP
TS 类的访问修饰符、getter/setter、继承
TypeScript 模块系统
ES Modules:import/export、类型导出
TypeScript 装饰器
@decorator 元编程增强类
TypeScript 高级类型 — 联合与交叉
联合类型、交叉类型、类型别名、字面量类型
TS 命名空间
学习TypeScript中TS 命名空间 — TypeScript教程的详细用法和最佳实践
TS 映射类型
Partial/Required/Pick/Omit
TypeScript 泛型约束深入
extends 约束、keyof 操作符、泛型与接口结合
TS 条件类型
学习TypeScript中TS 条件类型 — TypeScript教程的详细用法和最佳实践
TS 索引类型
学习TypeScript中TS 索引类型 — TypeScript教程的详细用法和最佳实践
TS 函数重载
学习TypeScript中TS 函数重载 — TypeScript教程的详细用法和最佳实践
TypeScript 接口深入 — 函数类型与索引签名
接口定义函数类型、可索引类型、类实现接口
TS 联合类型与字面量
学习Union Types
TS 联合类型实战
学习联合类型
const 断言 as const
使用 as const 将字面量类型收窄,使对象属性变为 readonly,数组变为元组。
模块解析策略 Node16
学习 TypeScript 5.x 的 Node16 模块解析策略,理解 package.json 中 exports 字段与 .mts/.cts 扩展名的配合使用。
tsconfig 严格模式配置
掌握 tsconfig.json 中的 strict 标志及其子选项,提升类型安全性。
声明文件 .d.ts 编写
掌握手动编写 .d.ts 声明文件来为无类型 JS 库提供类型信息,包括全局变量、函数重载和模块声明。
ThisType 上下文类型
利用 ThisType 为对象方法中的 this 提供显式类型标注。
类型守卫 is 与 typeof
掌握自定义类型守卫(is 关键字)和 typeof 类型守卫,在运行时缩小联合类型的范围,提升类型安全性。
TypeScript 类型收窄
TypeScript类型收窄:typeof守卫、instanceof守卫、in操作符、自定义类型守卫(x is Type)、asserts断言函数、never穷尽性检查、Discriminated Union辨别联合
TypeScript 模板字面量类型
TS 4.1+模板字面量类型:`${Prefix}${string}`模式匹配类型、infer推断字符串部分、Uppercase/Lowercase/Capitalize/Uncapitalize工具类型、类型安全的Event Emitter/路由类型
TypeScript 型变
TS型变:协变Covariance(子类型替代父类型)、逆变Contravariance(函数参数方向)、双向协变Bivariance、strictFunctionTypes严格模式、型变位置规则
TypeScript Branded Types 品牌类型
Branded Types(名义类型模拟):type UserId = string & {__brand:'UserId'}、防止类型混淆(ID/金额/邮箱等语义类型)、与Flavor类型对比、zod.brand()
TypeScript 映射类型进阶
映射类型进阶:keyof/key in/as重映射键、模板字面量类型+映射类型组合、Pick/Omit/Partial/Required/Readonly实现原理、递归类型、分布式条件类型与never过滤
TypeScript 模块解析策略
TS模块解析:classic vs node策略、path mapping路径别名(@/)、types/typeRoots类型声明查找、--moduleResolution bundler(TS 5.0+)、ESM/CJS互操作
TypeScript 类型体操
TypeScript类型体操(类型层面的元编程):extends条件类型+infer推断构造工具类型、递归类型解决深层嵌套、模板字面量类型处理字符串、T[number]索引访问获取联合类型、typeof+keyof+as类型映射实现类型安全路由/事件系统
TypeScript 断言函数
TS 3.7+ asserts断言函数:function assert(cond):asserts cond(类型收窄/Node.js assert模块内置支持)、asserts x is Type自定义类型断言、与type predicate对比(is类型守卫返回值Boolean vs asserts不返回值但抛出异常)
TypeScript satisfies 运算符
TS 4.9+ satisfies运算符:const obj={...}satisfies Type检查类型兼容但不改变推断类型(保留更窄的类型/不扩大为Type接口/比as安全/比:Type更精确)、升级type Annotation的最佳实践
TypeScript 5.2 using 声明
TS 5.2+ using声明(Explicit Resource Management /TC39 Stage 3):using关键字声明Disposable资源({Symbol.dispose}方法/离开作用域自动清理/类似try-finally自动)、await using异步资源管理(Symbol.asyncDispose)、与Python with/Rust Drop/C# using对
TypeScript 5.4 NoInfer 工具
TS 5.4+ NoInfer<T>工具类型阻止类型参数的推断:function foo<T>(a:T,b:NoInfer<T>)第二个参数不参与T推断、解决类型推断歧义场景、<T,>(a:T[],b:NoInfer<(item:T)=>boolean>)过滤函数的返回值不被纳入T推断
TypeScript this 参数
TypeScript函数中显式this参数声明(假参数编译时移除/控制调用时this的类型/声明this必须为特定类型才能调用/确保this类型安全)、与noImplicitThis编译选项配合
TypeScript keyof typeof 模式
keyof+typeof组合模式:typeof获取对象类型、keyof typeof obj提取对象键的联合类型、用于类型安全的对象键遍历、枚举替代Event Map模式
infer 关键字推断
在条件类型中使用 infer 提取类型变量,实现灵活的泛型推导。
映射类型 keyof in
利用 keyof 与 in 关键字创建映射类型,遍历对象类型的键并转换属性类型,实现 Partial、Readonly 等工具类型。
satisfies 运算符
使用 satisfies 在保留字面量类型的同时验证表达式是否符合某个类型。
TS 类型守卫:让类型更安全
学习如何使用 typeof、instanceof 和自定义类型守卫精确控制类型流。
TS 模板字面量类型:字符串的精确模式
掌握模板字面量类型,创建基于字符串模式的精确类型约束。
TypeScript 类型系统入门
TypeScript基础类型注解:string/number/boolean/array/any/unknown/void/never、类型推断、联合类型(A|B)、交叉类型(A&B)、字面量类型、类型别名type
TS infer 关键字:推断类型的高级技巧
深入理解 infer 关键字,在条件类型中提取和推断子类型。
TS satisfies 运算符:类型安全与推断并存
学习 satisfies 运算符,在保持类型推断的同时验证类型约束。
TS const 断言:锁定字面量类型
掌握 as const 断言,创建只读的精确字面量类型。
TypeScript 枚举与断言
TypeScript枚举:数字枚举/字符串枚举/常量枚举const enum、反向映射、枚举vs联合类型、类型断言as/<>、非空断言!、const断言as const
TS 声明文件:为 JavaScript 库添加类型
学习编写 .d.ts 声明文件,为第三方 JS 库或全局变量提供类型定义。
TS tsconfig 配置:项目类型设置详解
掌握 tsconfig.json 的核心配置选项,优化 TypeScript 编译行为。
TS 枚举 vs 联合类型:选择最佳方案
比较枚举和联合类型的优劣,学会在项目中做出正确选择。
TypeScript tsconfig 配置详解
tsconfig.json全面解析:target/module/strict/lib/outDir/rootDir/baseUrl/paths路径别名、include/exclude、extends继承、项目引用references
TS 品牌类型:防止类型混淆的利器
学习使用品牌类型(Branded Types),在编译时区分相同基础类型的值。
TS 递归类型:处理嵌套数据结构
学习定义递归类型,处理树形、链表等嵌套数据结构。
TS tsconfig配置:掌握编译选项
详解tsconfig.json的核心配置项,优化TypeScript项目的编译行为。
TS const断言:让字面量类型变得不可变且精确
学习 const 断言(as const)如何将变量推断为最具体的不可变字面量类型。
TS 类型守卫:让代码更安全
学习 TypeScript 类型守卫,掌握 typeof、instanceof 和自定义守卫的使用。
TS 模板字面量类型:动态类型构建
学习 TypeScript 模板字面量类型,用于基于字符串模式创建精确的类型。
TS infer 关键字:解开类型推断的魔法
学习 TypeScript infer 关键字,在条件类型中提取和推断类型。
TS satisfies 运算符:类型检查的艺术
学习 TypeScript satisfies 运算符,在保持类型推断的同时进行类型验证。
TS const 断言:让类型更精确
学习 TypeScript const 断言,用于创建只读和字面量类型。
模板字面量类型:从字符串模式到类型推导
深入理解 TypeScript 4.1 引入的模板字面量类型,掌握如何从字符串模式中提取、组合和转换类型。
品牌类型(Branded Types):杜绝原始类型混淆
学习如何通过交叉类型创建独一无二的品牌类型,在编译时就阻止将 UserId 与 ProductId 混用。
分布式条件类型:联合类型的逐元素变换
掌握分布式条件类型如何自动遍历联合类型,实现从联合到交叉、从对象到元组的类型级转换。
逆变与协变:条件类型中的类型参数位置陷阱
揭示函数参数逆变和返回值协变对条件类型推断的影响,以及如何利用此特性构造高级工具类型。
satisfies 运算符:类型约束与推导的完美平衡
学习 TypeScript 4.9 引入的 satisfies 如何同时保留最精确的字面量类型和符合结构约束,告别冗余的类型标注。
条件返回类型与函数重载的协同:精准输出
探索如何结合条件类型和函数重载,实现根据输入参数动态返回不同类型,比简单重载更灵活。
映射类型中的键重映射与 as 子句:重塑对象结构
掌握 as 子句在映射类型中的用途,实现键名过滤、前缀添加、可选转必选等高级变换。
高级 this 类型:在类方法中链式调用与多态
利用多态 this 类型实现安全的链式调用,并在继承层次中保留正确的方法返回类型。
装饰器与元数据反射:运行时类型信息的秘密
解析 TypeScript 装饰器如何配合 reflect-metadata 存储类型元数据,实现依赖注入和验证框架。
递归条件类型:处理嵌套数组与深层对象变换
深入递归条件类型(Tail Recursive Conditional Types)的机制,实现展平数组、深层可选、路径提取等。
模板字面量约束与条件推断
利用模板字面量类型在泛型中约束字符串模式,并结合条件类型自动推断动态参数。
分布式条件类型与递归结构变换
运用分布式条件类型对联合类型进行逐分支递归变换,实现深层类型的扁平化与映射。
型变协变与逆变的自定义映射类型
通过 mapped types 的 as 子句和键重映射实现协变/逆变类型安全转换。
精确可选属性与可辨识联合的交叉点
结合可选属性和可辨识联合的never类型消除,构建精确模式匹配类型。
名义子类型仿造:品牌类型与构造函数注入
通过交叉类型品牌标记和私有字段模拟名义类型,并利用构造函数注入保证类型安全。
否定类型:利用never交集实现类型排除
利用 never 在交叉类型中的吸收特性,创建类型层面的否定过滤器。
高阶类型模拟:泛型函子与类型构造器
利用自定义接口和类型映射模拟缺少的高阶类型(HKT)能力,实现类似函子的 map 操作。
类型级状态机协议:编译时状态迁移约束
使用泛型参数和重载签名编码有限状态机,在编译时禁止非法状态转换。
递归类型别名中的不变式约束模式
在递归类型中利用额外泛型参数记录深度或路径,防止无限递归并验证结构不变式。
条件返回类型与重载组合器模式
利用函数重载与条件返回类型创建类型安全的组合子(combinator),根据输入参数自动选择输出类型。
幻影类型实现编译期四则运算
利用TypeScript的幻影类型(Phantom Type)在类型层面模拟算术运算,实现编译期常量计算与类型安全校验。
自引用泛型构建无环递归数据结构
探索使用自约束泛型(self-referential generics)创建编译期可验证的树形结构,避免运行时循环引用错误。
条件模板字面量类型推导:从嵌套路径到API契约
利用TypeScript 4.1+的条件模板字面量类型,动态推导嵌套对象路径,自动生成完整的REST API端点类型映射。
品牌类型模拟Shadow DOM样式隔离
通过品牌类型(Branded Type)在类型层面实现CSS作用域隔离,防止组件间样式污染。
分布式条件类型在元组中的精确映射
掌握分布式条件类型在元组中的非平凡用法,实现元素级别的类型变换与过滤。
确定赋值断言在异步初始化中的安全模式
利用确定赋值断言(Definite Assignment Assertion)确保异步初始化流程中的变量安全性,避免未定义访问。
自定义AST转换器:从类型注解生成JSON Schema
编写TypeScript自定义转换器,在编译期扫描类型定义并生成对应的JSON Schema文件,用于外部API校验。
否定类型与条件可辨识联合的边界情况
利用never类型和条件类型实现否定约束,构建可辨识联合的非平凡边界情况。
递归条件类型实现深度展平与类型推导
通过递归条件类型实现任意嵌套数组的深度展平,并保留元素的精确类型。
映射类型与算术运算结合:实现编译期矩阵转置
在类型系统内使用映射类型结合算术元组操作,实现矩阵转置、旋转等线性代数运算。
基于条件类型的映射类型控制流
利用TypeScript的分布式条件类型特性,在映射类型中实现动态属性排除、提取与变换,实现类型层级的安全过滤。
基于类的品牌类型实现名义类型
利用类作为品牌标识符,在TypeScript的结构化类型系统中实现名义类型,防止不同业务领域的相同基础类型被混淆。
模板文字类型的key重映射与双向转换
利用模板文字类型结合映射类型的as子句,实现属性名的双向格式转换(camelCase ↔ snake_case),并保持类型安全。
无限递归类型安全的函数队列
通过递归条件类型和变长元组,构建一个类型安全的函数调用队列,保证每个函数的输出类型匹配下一个函数的输入类型。
从构造函数参数推断泛型类类型
利用构造签名和条件类型,从类的构造函数参数中反向推断泛型参数,实现类似依赖注入容器的类型安全工厂。
使用幻影类型实现物理单位安全运算
通过幻影类型参数在运行时零开销的情况下,实现不同物理单位(米/秒/千克)的加减乘除类型安全检查,防止单位混淆。
变长元组构建器模式:类型安全的矩阵转置
利用变长元组(Variadic Tuple Types)和映射类型,在类型层面实现矩阵的转置操作,展示多维数组类型的精确推导。
利用单例类型实现穷举性联合类型判别器
通过字面量类型和never,构建一个确保所有分支都被处理的联合类型判别器,在编译阶段捕获遗漏的case。
利用ThisType实现链式调用的类型推导
通过ThisType工具类型和函数中的this参数,设计出类型安全的多态链式API,支持子类方法返回子类类型。
使用型变实现类型安全的事件发射器
利用协变与逆变的型变规则,构建一个支持emit和on方法且事件类型与回调参数完全匹配的事件系统。
类型级自然数:用类型系统实现四则运算
利用 TypeScript 的模板字面量类型与递归条件类型,在类型层面构建皮亚诺自然数,并实现加法、乘法、比较。
Branded Types:在类型层面防止单位混淆与注入攻击
利用交叉类型与唯一符号创建品牌类型,让编译器拒绝错误的单位或来源数据,实现零运行时成本的防御编程。
条件类型的矩阵分发:同时匹配多个类型分支
利用分布式条件类型与 never 的过滤特性,实现类似模式匹配的多路分发,一次遍历联合类型中的每个成员。
变体安全注解:使用 in/out 关键字设计类型安全的 API
深入 TypeScript 4.7+ 的显式变体标记,通过 in(逆变)与 out(协变)约束泛型参数,防止危险的类型变体泄漏。
模板字面量语法解析器:在类型层面解析 JSON 片段
用模板字面量类型与递归条件类型构建微型解析器,将字符串拆解为 Token 并构建 AST,实现类型安全的 DSL。
This 参数类型推断:在回调中传递准确的 this 上下文
利用 this 参数声明与条件类型,让回调函数自动推断绑定后的 this 类型,避免 any 或手动标注。
幻影类型与多维数组:用类型标记数组的维度与单位
利用幻影类型参数标记数组维度,如 Matrix<3,4,'meters'>,在编译期检查矩阵乘法维度匹配与单位转换。
穷举模式匹配:使用 never 类型确保所有分支被处理
结合联合类型与 never,创建一个编译时检查的 switch 表达式,当新增枚举成员时提醒开发者补全分支。
重载签名映射:用映射类型批量生成函数重载
利用映射类型遍历对象类型,为每个键生成对应的函数重载签名,减少重复代码,实现类型安全的工厂函数。
名义类型擦除器:利用 Symbol 在运行时隐藏品牌标记
使用 unique symbol 与 WeakMap 在运行时存储品牌标识,既保证类型安全又避免品牌字段序列化泄漏。
幻影类型:编译期验证数据状态
利用未出现在运行时但出现在类型参数中的幻影类型,在编译期强制数据状态转换,避免非法操作。
分布式条件类型与映射类型的融合技巧
当条件类型与映射类型结合时,TypeScript 会触发分布式行为,可用于精准过滤和转换联合类型成员。
品牌类型:防止基础类型混淆的运行时安全方案
通过交叉类型与唯一符号创建品牌类型,强制编译器区分同源基础类型(如 UserId 与 OrderId)。
类型级别的数字运算:编译期四则运算实现
利用元组长度和递归条件类型,在 TypeScript 类型系统中实现加减乘除,绕过数值字面量限制。
逆变与协变在函数参数中的高级应用
深入函数类型的参数逆变与返回值协变,利用此特性设计安全的回调接口和类型层级转换。
模板字面量类型的固有运算符:字符串类型变换工厂
利用 TypeScript 4.1+ 的模板字面量类型和固有类型(Uppercase、Lowercase 等),在类型层面实现字符串的复杂转换。
条件返回类型与函数重载的协同优化
通过函数重载结合条件类型,实现基于输入参数动态推断返回类型,消除冗余类型守卫。
infer 关键字的递归提取:从深层嵌套类型中精准抓取数据
利用 infer 在条件类型中匹配并提取子类型,结合递归实现从深层嵌套结构(如 Promise<Promise<string>>)中剥离包装类型。
映射类型的正则表达式变换:在类型层面操作键名模式
利用模板字面量类型与映射类型的键重映射,实现类似正则替换的键名批量变换(如给所有以 'get' 开头的属性添加前缀)。
编译期非空断言:利用类型守卫消除运行时null检查
通过自定义类型守卫和断言函数,在编译期证明某个值不为null/undefined,且无需运行时断言函数调用。
利用 Branded 名义类型实现运行时安全边界
学习如何用 TypeScript 的交叉类型与品牌标记模拟名义类型系统,在编译与运行时双重保护不同领域的原始类型。
类型层面有限状态机:用泛型表达状态转换规则
不再依赖枚举或运行时状态管理,直接在类型系统中编码一个简单 Promise 状态机的合法转换路径。
类型层数组过滤器:用映射+条件类型实现类型谓词
在不运行的代码中实现类似 Array.filter 的类型过滤,保留复杂条件嵌套。
分布式条件类型的深度推断:拆分联合与提取分支
掌握条件类型在联合类型上的分布式行为,并利用其精准提取每个分支的 payload。
变长元组 + 模板字面量解析路径参数
用变长元组与模板字面量类型递归解析类似 'users/:id/posts' 的动态路由路径,生成精确参数类型。
TypeScript 5 装饰器工厂:覆写构造函数与元数据注入
新版 ECMA 装饰器下,如何编写一个工厂装饰器,在类实例化时注入自定义初始化逻辑与元数据。
模拟高阶类型:通过类型参数推断实现类似 HKT 的能力
TypeScript 没有原生高阶类型,本教程用固定接口 + 模块化类型映射模拟 HKT,实现 Functor 模式。
satisfies 操作符的多层约束与运行时验证联动
利用 satisfies 保证对象形状的同时,不丢失字面量类型推断,并联动 zod / yup 进行运行时验证。
深入协变与逆变:泛型方法参数的类型安全校验
理解函数参数位置的协变/逆变规则,并通过编译器选项和工具类型强制实现不可变容器设计。
利用内置字符串操作类型从 TypeScript 类型推导 JSON Schema
使用 TypeScript 内置的 Uppercase, Capitalize, Uncapitalize 等 intrinsic 类型,配合映射类型将接口自动转为 JSON Schema 字符串。
名义类型模拟:用Branded Types实现类型安全
探索TypeScript结构类型系统下如何通过品牌类型(Branded Types)模拟名义类型,防止不同实体ID的误用。
模板字面量类型深度推理:从路由路径提取参数
利用TypeScript 4.1+的模板字面量类型与条件类型,自动从URL模板中推断动态参数类型。
条件代理模式:基于联合类型自动分发处理函数
利用分布式条件类型与函数重载,构建一个根据输入联合类型自动选择处理器的类型安全代理。
协变与逆变实战:构建类型安全的发布订阅系统
深入理解TypeScript的变体关系,在泛型类中正确使用协变/逆变/不变以构建安全的EventEmitter。
幻影类型保障物理单位:零运行时开销的量纲分析
使用幻影类型在编译期检查物理量运算的单位一致性,如米不能直接加秒。
递归穷举检查:确保switch-case覆盖所有可能分支
利用never类型与递归条件类型,在嵌套数据结构中强制穷举所有可辨识联合分支。
高阶类型模拟:在TypeScript中实现Functor与Monad
虽然TypeScript不支持高阶类型,但可以通过接口与类型参数模拟,实现类型安全的Maybe、Either等函数式抽象。
否定类型与条件类型:排除特定模式的类型守卫
利用never与条件类型构造“非某类型”约束,实现更精确的参数过滤。
类型级状态机:用类型系统建模有限状态转换
在类型层面定义状态机,使非法状态转换在编译期被捕获。
深入satisfies操作符:兼顾类型安全与窄化推断
TypeScript 4.9引入的satisfies操作符的进阶用法,用于复杂对象、元组与函数类型的双重检查。
条件类型中的分布式推断与模板字面量组合
深入理解条件类型在联合类型上自动分发(Distributive Conditional Types)的机制,并结合模板字面量类型实现字符串模式匹配与推断。
协变与逆变实战:函数参数与返回类型的安全设计
通过实际案例掌握TypeScript中的型变(Variance)概念,理解为什么函数参数是逆变(Contravariant)而返回值是协变(Covariant),并利用in/out关键字实现类型安全。
名牌类型(Branded Type):模拟名义类型系统避免单位混淆
利用交叉类型与唯一符号(unique symbol)创建运行时名义类型,在编译阶段防止将美元与欧元、像素与点数混用,提升大型项目的类型安全性。
数组的协变陷阱与不变性解决方案
揭示TypeScript中数组默认是协变的原因(历史兼容),以及由此带来的运行时隐患——通过‘只读数组’与‘不变容器’模式彻底解决类型安全问题。
类型级状态机:用类型系统编码协议与状态转换
利用泛型、条件类型与字面量联合类型在编译期建模有限状态机,确保非法状态转换在代码编写阶段就被捕获。
infer关键字深度解构:递归推断与尾递归优化
超越基础用法,探索infer在递归条件类型中的限制(TypeScript 4.5+的尾递归优化),并实现字符串反转、深层属性提取等高级模式。
利用unique symbol实现模块间私有接口与名义类型桥接
介绍unique symbol在跨模块类型安全中的应用:创建外部不可见的私有键、实现名义类型子类型以及安全的插件系统。
模板字面量类型的内置工具:Uppercase, Lowercase 与字符级别运算
深入模板字面量类型的四个内置映射类型(Uppercase, Lowercase, Capitalize, Uncapitalize),并利用它们实现大小写无关的字符串匹配与编译期代码生成。
this参数的多态应用:实现框架级链式调用与类型安全上下文
利用TypeScript的this参数(this parameter)在方法中显式声明上下文类型,实现类似RxJS或Vue的组合式API中的链式调用与上下文隔离。
精确可选属性(Exact Optional Properties)与多余属性检查的进阶
破解TypeScript可选属性的‘缺失即undefined’行为,实现真正的精确可选语义:要么完全不存在该键,要么值存在且不为undefined。
幻影类型与Symbol品牌化:运行时安全的类型标签
利用交叉类型与唯一Symbol实现编译期与运行时的双重类型安全,避免原始类型误用。
模板字面量驱动的条件类型推理引擎
利用模板字面量类型结合infer关键字,从字符串模式中精确提取并转换类型信息。
分布式映射类型:在联合类型上安全地重构对象
利用条件类型的分布式特性,在联合类型上应用映射类型,实现类似函数重载的静态分发。
名义类型构造器:用类与交叉类型模拟名义类型系统
通过私有的类字段或交叉类型标记,实现类似Java/C#的名义类型,防止结构兼容性导致的赋值错误。
递归模板字面量解析:在类型系统内构建JSON解析器
用纯类型系统递归解析JSON字符串,在编译期验证结构并推导类型。
高阶类型模拟:用类型构造器模拟HKT(Higher-Kinded Type)
在不原生支持HKT的TypeScript中,利用接口与类型映射模拟函子、单子等高级抽象。
Inferno模式:多层嵌套infer的高级实用类型
利用多个infer嵌套从复杂类型(如函数重载、Promise、数组)中提取深层类型信息。
NoInfer工具类型:强制精确泛型推断与约束
利用NoInfer让TypeScript在某些位置放弃类型推断,强制开发者提供精确类型或避免宽泛推断。
模板字面量类型作为领域特定语言(DSL)编译器
将字符串模板作为DSL,在类型系统内编译为类型安全的函数或数据结构。
类型级状态机:用联合类型与模板字面量构建协议
在类型系统内建模有限状态机,确保状态转换的合法性,杜绝非法状态流程。
幻影类型模式:将运行时约束编译到类型系统中
利用 Typescript 泛型参数的未使用特性,在类型层面编码业务规则,使非法状态变得不可表示。
模板字面量递归推理:在字符串解析中实现自定义模式匹配解析器
利用 Typescript 4.1+ 的模板字面量类型与条件类型的递归,在类型级别解析结构化字符串,例如解析路由参数或 DSL。
通过唯一 Symbol 实现防篡改的透明/不透明类型
使用交叉类型与独特的 symbol 字段创建不可伪造的防篡改类型,防止原始类型误用,适用于敏感标识或外部数据。
分布式条件类型的协变陷阱:掌控联合类型的分发与抑制
深入理解条件类型中联合类型自动分发的机制,以及在函数参数逆变场景下如何避免意外分发。
通过模块扩展模拟高阶类型:实现可复用的函子与单子模式
Typescript 不原生支持高阶类型,但可利用模块扩展与接口合并来模拟类型构造函数的抽象,实现类型安全的 Functor。
可变元组实现类型安全的自动柯里化
利用 Typescript 4.0+ 的可变元组类型构造一个能自动推断柯里化参数类型的工具类型与实现。
枚举合并与类型标记:轻量级名义类型系统
结合枚举值合并与字符串字面量品牌,在不改变运行时行为的前提下创建名义类型,适用于依赖注入与模块化。
as 子句重映射键:在映射类型中实现深度键变换
利用 Typescript 4.1+ 的 as 子句在映射类型中重映射键,实现类似 lodash 的 set/get 深度路径类型。
this 参数多态:构建类型安全的链式调用 API
利用 this 参数在方法中捕获具体子类型,实现链式调用时精准返回子类类型,适用于构建器模式与级联。
内部字符串操纵类型:Uppercase 等的实现机制与自定义变换
探索 Typescript 内置的 Uppercase/Lowercase 等 intrinsic 类型的工作原理,并通过条件类型+字符映射实现自定义字符串变换。
幻影类型:在编译期锁定业务规则
利用未使用的类型参数在类型层面编码状态机或单位约束,避免运行时错误。
协变与逆变:理解函数子类型的底层逻辑
深入 TypeScript 函数参数的双变、协变、逆变规则,结合 strictFunctionTypes 解析何时该用 in/out。
使用 infer 从复杂类型中提取深层信息
深入条件类型中的 infer 关键字,实现递归类型解析、函数返回值提取、数组元素类型推断等高级模式。
模板字面量类型:在类型层面做字符串计算
利用模板字面量类型和条件类型实现字符串拼接、分割、大小写转换等编译期字符串运算。
品牌类型与运行时验证的桥梁技术
结合品牌类型与 Zod/yup 等校验库,在运行时和编译期同步保障数据结构合法性。
分布式条件类型的陷阱与高级模式
掌握联合类型在条件类型中的自动分发机制,利用 never 进行类型过滤,构建 Filter、Exclude 等工具。
自定义迭代器与异步生成器:构建高性能数据管道
深入 Symbol.iterator 和异步生成器,实现惰性求值、背压控制、流式转换等高级迭代模式。
编译期依赖注入:用类型系统实现 IoC 容器
利用映射类型和条件类型构建零运行时开销的依赖注入容器,自动解析构造函数参数类型。
键值重映射:修改对象键的终极方案
使用 as 子句重映射键,实现前缀添加、筛选键、对象扁平化等高级对象变换。
利用枚举实现名义类型系统
通过唯一枚举成员模拟名义类型,解决结构类型系统在金额、ID 等场景下的误用问题。
条件类型的高级映射与类型推断实战
本教程深入讲解如何利用条件类型、映射类型与 infer 关键字结合,实现动态类型转换与复杂类型推断。
品牌类型模式:用结构类型创建运行时安全边界
学习如何利用交叉类型与唯一符号创建品牌类型,在结构类型系统中模拟名义类型安全。
基于使用场景的类型推断:控制流分析进阶
深入 TypeScript 控制流分析机制,理解如何通过条件分支、赋值和函数调用引导类型推断。
递归模板字面量类型:解析字符串模式
利用 TypeScript 4.1+ 的递归条件类型与模板字面量类型解析复杂字符串模式。
高阶泛型:将类型参数作为类型函数的输入
探索如何将泛型本身作为参数传递,实现类型层面的高阶函数,增强类型系统的抽象能力。
类型安全构建器模式:用链式调用约束构造流程
通过泛型与逐次类型窄化实现编译期强制按序调用的构建器,错误状态提前暴露。
协变与逆变陷阱:函数参数类型的反向兼容性
深入理解 TypeScript 中函数类型的协变与逆变规则,以及 strictFunctionTypes 的影响。
幻影类型约束:在编译期编码数据特性
利用从未实例化的类型参数,在编译期对运行时数据施加额外的类型约束。
联合类型协议提取:从联合类型中自动提取公共结构
利用分布式条件类型和 keyof 操作符从联合类型中提取公共字段或函数签名。
类型层面的对象计算:编译期合并与变换
通过递归映射类型与条件类型在类型系统中实现对象合并、差分和模式匹配。
Symbol与元组类型的元编程技巧
利用Symbol的不可枚举性配合元组类型的索引签名,实现安全的私有属性存储。
条件类型驱动的构造函数重载
根据泛型参数动态推断构造函数签名,实现真正的多形态实例化。
模板字面量类型的递归解析器
利用递归条件类型和模板字面量,构建编译时字符串解析器。
品牌化枚举的穷举检查技巧
利用交叉类型为枚举值附加唯一品牌标签,在编译时强制穷举所有分支。
幻影类型实现复杂编译时约束
使用未实例化的类型参数作为“幻影”,在编译期强制执行业务规则。
分布式条件类型的陷阱与精妙用法
深入理解并利用分布式条件类型的自动展开行为,设计高阶工具类型。
利用协变/逆变实现方法重写契约
通过控制类型参数的协变与逆变方向,在子类中安全重写方法签名。
同构递归映射类型与深层只读
实现递归映射类型,同时保留原始类型的同构结构。
在联合字面量交叉类型中精准提取
利用 infer 在复杂的联合与交叉类型中提取特定成员信息。
断言函数与类型谓词的组合精炼
通过自定义类型谓词与断言函数构建可组合的类型细化链。