用途
TypeScript Pro 是一个专家型技能,提供 TypeScript 开发能力,专注于高级类型系统特性、泛型编程模式与类型安全的应用架构。其目标是利用 TypeScript 5+ 构建健壮、可维护且具备全面类型安全的应用。
主要能力
该技能覆盖以下方向:
- 使用高级泛型与映射类型设计复杂类型系统
- 在前端与后端边界之间实现类型安全的 API
- 将 JavaScript 代码库渐进式迁移到 TypeScript
- 排查复杂的类型错误或类型推断问题
- 构建类型安全的库、SDK 或框架集成
- 优化大型项目中的 TypeScript 构建性能
- 创建品牌类型(branded types)、可辨识联合(discriminated unions)与工具类型
使用方式
资料给出了三个核心工作流与若干模式。
工作流 1:设计类型安全的 API 客户端
采用契约优先(Contract-First)方式,先定义 API Schema 作为单一事实来源,再从中提取类型。示例中定义了 apiSchema 常量,包含 /users、/users/{id}、/posts 等路径及其 GET、POST、PUT、DELETE 方法的 query、params、body、response 类型。随后通过 typeof apiSchema 与条件类型(如 RequestParams、RequestQuery、RequestBody、ResponseData)派生出请求与响应类型。
接着实现 ApiClient 类,其 request 方法通过泛型参数 Path 与 Method 约束路径与方法,并接受经过类型检查的 params、query、body 选项,返回 Promise<ResponseData<Path, Method>>。实现中会替换路径参数(如 /users/{id} → /users/123)、拼接查询字符串、发起 fetch 请求并处理错误。使用时可获得完整的类型检查与自动补全,非法用法(如传入未知 query 属性或缺少必需 params)会触发 TypeScript 错误。
工作流 2:使用 Zod 添加运行时校验
资料展示了用 Zod 定义 UserSchema(包含 uuid、email、min/max、datetime 等约束),并通过 z.infer 从 schema 推导出 TypeScript 类型。随后扩展出 ValidatedApiClient,在 request 方法中新增可选的 responseSchema,若提供则在返回前执行 responseSchema.parse(response) 进行运行时校验;若 API 返回无效数据,Zod 会抛出详细错误。
工作流 3:渐进式 TypeScript 迁移
资料给出了分阶段迁移流程:
- 阶段 1(第 1 周):零改动启用 TypeScript,配置
allowJs: true、checkJs: false、noEmit: true、skipLibCheck: true等。 - 阶段 2(第 2-4 周):添加 JSDoc 类型提示,使用
@typedef、@param、@returns标注。 - 阶段 3(第 5-8 周):逐步启用
checkJs: true,逐目录修复错误,可用// @ts-nocheck或// @ts-ignore抑制。 - 阶段 4(第 9-12 周):逐目录将
.js重命名为.ts,更新导入(TypeScript 中不带文件扩展名),并添加显式类型。 - 阶段 5(第 13-16 周):逐步启用严格模式,包括
strict、noImplicitAny、strictNullChecks、strictFunctionTypes、strictPropertyInitialization,并修复相应错误(如为参数添加显式类型、处理 null)。
模式:模板字面量类型
资料展示了用模板字面量类型做字符串校验,例如用 Size 与 Color 组合出 ClassName(btn-${Size}-${Color}),或用 Stage 与 Region 组合出 Environment(${Stage}_${Region}),非法组合会在编译期报错。
反模式提示
资料指出不定义返回类型是反模式:函数返回类型会被推断为 Promise<any>,实现变化时返回类型会静默改变,难以捕获破坏性变更。正确做法是显式声明返回类型,如 function getUser(id: string): Promise<User>。
适用场景
- 设计带高级泛型与映射类型的复杂类型系统
- 实现跨前后端边界的类型安全 API
- 渐进式迁移 JavaScript 代码库
- 排查复杂类型错误或推断问题
- 构建类型安全的库、SDK 或框架集成
限制与不适用场景
资料明确列出以下情况不应调用该技能:
- 简单 JavaScript 任务(不需要类型标注)
- 运行时逻辑缺陷(应使用调试器)
- 仅涉及构建配置(应使用 build-engineer)
- React/Vue 专属模式(应使用 react-specialist / vue-expert)
集成模式
资料描述了与其他角色的协作方式:
- 与 react-specialist:TypeScript Pro 定义类型,React 专家在组件中使用;共享 props、state、API 契约的类型定义。
- 与 backend-developer:TypeScript Pro 设计 API 类型,后端实现匹配类型;共享 schema 定义(OpenAPI、tRPC、GraphQL),共同负责端到端类型安全。
- 与 nextjs-developer:TypeScript 类型用于 Next.js App Router 的 Server/Client Components;协作 Server Actions 类型与 API 路由类型。
暂未提供的信息
资料未提供该技能的收费方式、价格、具体平台支持范围、安装命令或性能基准数据。