SuperAPI AI 工具集

typescript-expert

编程与开发

查看项目

更新于 10-15 13:10

技能介绍

用途

TypeScript Expert 是一个面向 TypeScript 与 JavaScript 的专家型技能,基于当前最佳实践,提供类型级编程、性能优化和真实世界问题解决的深度实用知识。当遇到需要超专门领域的问题时,它会建议改用其他子代理并停止,例如:深度 webpack/vite/rollup 打包器内部机制建议改用 typescript-build-expert;复杂的 ESM/CJS 迁移或循环依赖分析建议改用 typescript-module-expert;类型性能分析或编译器内部机制建议改用 typescript-type-expert。

主要能力

高级类型系统

  • 类型级编程模式:品牌类型(Branded Types)用于领域建模,防止原始类型混用;高级条件类型,包括递归类型操作与模板字面量类型;类型推断技巧,如使用 satisfies 进行约束校验、使用 const 断言获得最大推断。
  • 性能优化策略:诊断缓慢的类型检查(使用 tsc --extendedDiagnostics),常见修复包括用接口替换类型交叉、拆分大型联合类型、避免循环泛型约束、使用类型别名打断递归;构建性能模式包括启用 skipLibCheck、incremental 与 .tsbuildinfo 缓存、精确配置 include/exclude、monorepo 中使用带 composite 的项目引用。

真实问题解决

  • 复杂错误模式:如“无法命名 X 的推断类型”“缺少类型声明”“比较类型时栈深度过大”等,并给出修复优先级。
  • 模块解析疑难:如文件存在却“找不到模块”,检查 moduleResolution 是否匹配打包器、验证 baseUrl 与 paths 对齐、monorepo 中确保 workspace 协议、清理缓存;并说明 TypeScript paths 仅在编译时生效,运行时需借助 ts-node、Node ESM 加载器或预编译。

迁移与 monorepo

  • JavaScript 到 TypeScript 迁移:增量迁移策略,启用 allowJs 与 checkJs、逐步重命名文件、逐文件添加类型、逐个启用严格模式特性;可借助 ts-migrate、typesync 等工具。
  • 工具迁移决策:ESLint + Prettier 到 Biome、TSC 到仅类型检查、Lerna 到 Nx/Turborepo、CJS 到 ESM 的适用场景与迁移成本。
  • Monorepo 管理:Nx 与 Turborepo 的决策矩阵,以及 TypeScript monorepo 配置示例(根 tsconfig.json 的 references、composite、declaration、declarationMap)。

现代工具链

  • Biome 与 ESLint 的取舍:Biome 适合速度关键、单一工具完成 lint 与格式化、TypeScript 优先的项目;ESLint 适合需要特定规则/插件、复杂自定义规则、Vue/Angular 或类型感知 lint 的场景。
  • 类型测试策略:推荐 Vitest 的 expectTypeOf,并说明何时应测试类型(发布库、复杂泛型函数、类型级工具、API 契约)。
  • 调试技巧:使用 tsx/ts-node 调试、tsc --traceResolution 追踪模块解析、tsc --generateTrace 分析类型检查性能、内存使用分析,以及自定义错误类。

当前最佳实践

  • 默认严格模式:strict、noUncheckedIndexedAccess、noImplicitOverride、exactOptionalPropertyTypes、noPropertyAccessFromIndexSignature。
  • ESM 优先:package.json 设置 "type": "module"、必要时使用 .mts、现代工具配置 "moduleResolution": "bundler"、对 CJS 使用动态导入。
  • AI 辅助开发:GitHub Copilot 擅长 TypeScript 泛型,用 AI 生成样板类型定义,并用类型测试验证 AI 生成的类型。
  • 代码审查清单:涵盖类型安全、TypeScript 最佳实践、性能考量、模块系统、错误处理模式、代码组织。

使用方式

被调用时,它会先全面分析项目设置:优先使用内部工具(Read、Grep、Glob),Shell 命令作为后备;检查核心版本与配置(npx tsc --version、node -v);检测工具生态(解析 package.json 中的 biome/eslint/prettier/vitest/jest/turborepo/nx);检查是否为 monorepo(pnpm-workspace.yaml、lerna.json、nx.json、turbo.json)。检测后调整方法:匹配导入风格(绝对 vs 相对)、尊重现有 baseUrl/paths 配置、优先使用现有项目脚本、monorepo 中优先考虑项目引用。随后识别具体问题类别与复杂度,应用相应解决策略,并彻底验证:使用快速失败方式(npm run typecheck 或 npx tsc --noEmit、npm test 或 npx vitest run),仅在需要且构建影响输出/配置时执行构建。安全提示:验证时避免 watch/serve 进程,仅使用一次性诊断。

适用场景

适用于 TypeScript/JavaScript 项目的类型设计、类型检查与构建性能调优、复杂类型错误排查、模块解析问题、JavaScript 到 TypeScript 迁移、monorepo 配置与工具选型、lint/格式化工具迁移、类型测试以及调试等场景。

限制

当问题需要超专门领域知识时,该技能会建议改用其他子代理并停止,而非自行处理。验证时应避免 watch/serve 进程。关于收费、价格、平台支持等具体信息,资料中暂未提供。