SuperAPI AI 工具集

typescript-advanced-patterns

编程与开发

查看项目

更新于 10-16 05:04

技能介绍

用途:在编译期编码约束以消除运行时缺陷,适合需要强类型保障的生产级 TypeScript 项目。

主要能力:品牌类型实现标称类型(如 UserId 与 OrderId 不可互换);可辨识联合配合 never 实现穷尽检查;模板字面量类型生成路由、CSS 属性与事件名类型;条件类型与 infer 提取返回值、数组元素等类型;satisfies 在校验同时保留具体推断类型;Zod 模式经 z.infer 同时获得运行时校验与编译期类型。

使用方式:文档以决策树按问题选择模式,并给出代码示例。核心构造如 type Brand<T, B extends string> = T & { readonly __brand: B };构造函数示例 const UserId = (id: string): UserId => id as UserId;穷尽检查使用 assertNever(x: never): never;Zod 示例 import { z } from 'zod'。

适用场景:领域 ID 与金额防混用、状态机与 API 结果建模、事件发射器、外部数据解析、配置对象、复杂工具类型。不适用于基础 TypeScript 语法、React 组件 props 类型或一般 JavaScript 模式。

限制与反模式:避免用 any 逃避类型设计,API 边界应使用 unknown 或以 Zod 校验;避免过度工程化类型,若无法一句话解释类型含义应简化或加注释;类型复杂度过高会拖慢编译并恶化错误信息。质量清单要求无裸 any、需防混用的原始值加品牌、联合用可辨识而非布尔标志、外部数据经 Zod 解析、switch 穷尽检查、条件类型加注释,并对复杂工具类型做类型级测试。参考文件 references/branded-types.md 与 references/type-safe-patterns.md 提供更多模式。