SuperAPI AI 工具集

typescript-advanced-types

编程与开发

查看项目

更新于 10-15 21:42

技能介绍

用途:在提升类型安全的同时保持代码可读,主张复杂度只有值得时才引入,优先使用简单类型。

主要能力:泛型用于在相关类型间复用逻辑;条件类型按类型条件选择类型;映射类型转换对象属性;模板字面量类型约束字符串模式;工具类型 Pick、Omit、Partial、Required、Readonly、Record;infer 从数组、Promise、函数或对象中提取内部类型;类型守卫在运行时收窄 unknown;断言函数在运行时校验失败时抛错;品牌类型区分已验证的字符串或 ID。

规则与用法:输入不可信时用 unknown 而非 any;让 TypeScript 推断简单类型;仅当类型需连接多处时才加泛型,若类型参数只出现一次通常不必要;变体优先用联合与可辨识联合;对象形状优先 interface,联合、条件、映射与别名用 type;避免深层嵌套的条件或递归类型;项目支持时为可复用工具添加类型测试。

模式示例(保留原样):type StrictOmit<T, K extends keyof T> = Omit<T, K>; type ElementType<T> = T extends (infer U)[] ? U : never; type UserId = string & { readonly __brand: "UserId" }; type User = z.infer<typeof userSchema>; 可按需加载 context/core-examples.md、context/patterns.md、context/techniques.md。

避免:用 any 走捷径;能用守卫时仍用类型断言;隐藏意图的过度取巧类型;无界泛型参数;重复 schema 或 API 定义已有的类型;拖慢编译器的递归类型。

限制:该技能本身不含运行时执行环境,具体集成方式与是否收费暂未提供。