用途:在每次编辑 TypeScript 文件后立即捕获类型错误,而不是等到构建时才发现。
主要能力:提供手动与自动两种方式。手动流程是在编辑 TypeScript 文件后运行命令 npx tsc --noEmit 2>&1 | head -30,出现错误就先修复再继续。
使用方式:自动化需在 .cursor/hooks.json 中配置 afterFileEdit 事件,脚本为 check-types.sh,匹配模式为 **/*.{ts,tsx}。随后创建 .cursor/hooks/check-types.sh 脚本,内容为 npx tsc --noEmit --pretty 2>&1 | head -20,并以 exit 0 结尾,避免即使有错误也阻塞智能体;再执行 chmod +x .cursor/hooks/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 形成完整的“修复直到干净”循环。