SuperAPI AI 工具集

typescript-patterns

编程与开发

查看项目

更新于 10-15 07:49

技能介绍

TypeScript 高级模式是用于构建类型安全、可维护、可扩展应用的生产级 TypeScript 模式集合。本技能覆盖泛型、工具类型、条件类型、可辨识联合、品牌类型等主题。

一、用途 该技能面向 TypeScript 开发中的类型设计与类型安全需求,适用于编写泛型、创建工具类型、修复 TypeScript 类型错误等场景。当使用者提出“编写 TypeScript 泛型”“创建工具类型”“修复 TypeScript 错误”等请求时启用。

二、主要能力(依据资料示例展开)

  1. 高级泛型与约束:包括基础泛型约束(如 T extends { length: number })、使用交叉类型实现多重约束(如 T extends HasId & HasTimestamp)、keyof 约束模式(getProperty<T, K extends keyof T>)、泛型工厂模式(Constructor<T> 与 createInstance)。
  2. 内置工具类型:Pick、Omit、Partial、Required、Record、Extract、Exclude、ReturnType、Parameters、InstanceType,并给出各自用法的示例代码。
  3. 条件类型与 infer:基础条件类型(IsString)、使用 infer 提取类型(UnwrapPromise、ElementOf、FirstArg)、分布式条件类型及其通过元组包裹来阻止分布、递归条件类型(DeepUnwrap、DeepPartial)。
  4. 映射类型与模板字面量类型:自定义映射类型(Immutable、Nullable、前缀化键名)、模板字面量类型(生成 API 路由、事件处理器名、CSS 单位值)、使用 as 进行键重映射(Getters、按值类型过滤键)。
  5. 可辨识联合与穷尽性检查:基本可辨识联合(RequestState)、使用 never 进行穷尽性检查(assertNever)、Action/Event(Redux 风格)模式。
  6. 类型守卫与类型收窄:自定义类型守卫函数(类型谓词)、断言函数(asserts value is string)、in 操作符收窄、使用 satisfies 进行类型校验而不拓宽类型。
  7. 品牌/不透明类型:防止原始类型混淆(UserId、OrderId、Email 等品牌字符串类型与构造校验证)、品牌数值类型(Celsius、Fahrenheit、Kilometers、Miles)。
  8. 带类型的 Builder 模式:类型安全的 QueryBuilder,仅在设置必需字段后 build() 才可调用。
  9. 使用 Zod 进行运行时校验:模式定义与类型推断(z.infer)、运行时解析(parse 与 safeParse)、API 请求/响应校验示例。

三、使用方式 资料内容以可复制的 TypeScript 代码示例为主,使用者可直接参考或改编这些模式到自己的项目中。资料未提供该技能的安装命令、调用参数或命令行使用步骤。

四、适用场景 适用于需要强化 TypeScript 类型系统的项目,例如设计类型安全的 API 层、状态管理(Redux 风格 reducer)、表单数据处理、数据库查询构建器、运行时校验等。

五、限制 资料未说明该技能支持的 TypeScript 版本、依赖环境、收费模式或平台信息,这些内容暂未提供。