SuperAPI AI 工具集

auto-type-checking

编程与开发

查看项目

更新于 10-16 02:41

技能介绍

Auto Type Checking 是一个面向 TypeScript 开发流程的自动化类型检查技能,目标是在每次编辑文件之后立即捕获类型错误,而不是等到构建阶段才暴露问题。

用途 该技能用于在编辑 TypeScript 文件后快速执行类型检查,并在发现类型错误时立即标记出来,帮助开发者在继续下一步之前就修复问题。

主要能力

  • 手动检查:编辑 TypeScript 文件后,可运行 npx tsc --noEmit 2>&1 | head -30,若出现错误则在继续之前修复。
  • 自动执行:通过 Cursor hooks 实现自动强制检查。在 .cursor/hooks.json 中添加配置,使每次文件编辑后自动运行检查脚本: { "hooks": [ { "event": "afterFileEdit", "script": "check-types.sh", "pattern": "**/*.{ts,tsx}" } ] }
  • 检查脚本:创建 .cursor/hooks/check-types.sh,内容为: #!/bin/bash

Quick type check — only reports errors, doesn't block

npx tsc --noEmit --pretty 2>&1 | head -20 exit 0 # Don't block the agent even if there are errors 并执行 chmod +x .cursor/hooks/check-types.sh 赋予可执行权限。

使用方式 既可以手动运行 npx tsc --noEmit 进行类型检查,也可以通过 Cursor hooks 配置 afterFileEdit 事件,在每次编辑匹配 **/*.{ts,tsx} 的文件后自动运行 check-types.sh 脚本。脚本只报告错误,不阻塞代理继续执行。

需要检查的常见类型错误

  • 缺失导入:Cannot find name 'X' → 添加导入。
  • 类型不匹配:Type 'string' is not assignable to type 'number' → 修正类型或值。
  • 缺少属性:Property 'x' does not exist on type 'Y' → 在接口中添加属性或修正访问方式。
  • 空值安全:Object is possibly 'null' → 添加空值检查或可选链。
  • 泛型约束:Type 'X' does not satisfy the constraint 'Y' → 修正泛型参数。

提示

  • 使用 --noEmit 进行类型检查而不产生输出文件。
  • 对于大型项目,tsc 可能较慢,可考虑 --incremental 或仅对更改的文件运行。
  • 如果使用路径别名,确保 tsconfig.json 的 paths 配置正确。
  • 对于 monorepo,从包根目录运行 tsc,而不是工作区根目录。
  • 可与 grinding-until-pass 搭配,形成完整的“修复直到干净”循环。

适用场景 适用于使用 TypeScript 的项目,尤其是希望在编辑过程中即时发现类型错误、避免构建阶段才发现问题的开发流程。

限制 资料未提供关于收费、价格、平台支持范围或具体性能表现的更多信息。