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 的项目,尤其是希望在编辑过程中即时发现类型错误、避免构建阶段才发现问题的开发流程。
限制 资料未提供关于收费、价格、平台支持范围或具体性能表现的更多信息。