Auto Type Checking
Catch type errors immediately after every edit instead of discovering them at build time.
Manual Workflow
After editing a TypeScript file, run:
npx tsc --noEmit 2>&1 | head -30
If errors appear, fix them before moving on.
Automated with Cursor Hooks
Add to .cursor/hooks.json to run automatically after every file edit:
{
"hooks": [
{
"event": "afterFileEdit",
"script": "check-types.sh",
"pattern": "**/*.{ts,tsx}"
}
]
}
Create .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
What to Check
When type errors appear:
- Missing imports:
Cannot find name 'X'→ add the import - Type mismatches:
Type 'string' is not assignable to type 'number'→ fix the type or the value - Missing properties:
Property 'x' does not exist on type 'Y'→ add the property to the interface or fix the access - Null safety:
Object is possibly 'null'→ add null check or optional chaining - Generic constraints:
Type 'X' does not satisfy the constraint 'Y'→ fix the generic parameter
Tips
- Use
--noEmitto type-check without producing output files - For large projects,
tsccan be slow — consider--incrementalor running only on changed files - If using path aliases, ensure
tsconfig.jsonpaths are configured correctly - For monorepos, run
tscfrom the package root, not the workspace root - Pair with
grinding-until-passfor a full "fix until clean" loop