Verification · Static analysis
Type checking
Proves call sites and data shapes agree across modules: wrong types, unhandled null or None, signatures broken by a change.
Sub-techniques
-
Gradual typing
V1006.001Type-check annotated code first and tighten strictness per module.
-
Strict mode
V1006.002Disallow implicit any, untyped definitions and unchecked optional access.
-
Compiler as checker
V1006.003In compiled languages the build is the type check; a failing build is this check failing.
How to build it
- Run the checker in non-strict mode on the whole repository to get a baseline.
- Turn on strict flags for new and frequently changed modules first.
- Run it in CI as its own job so type errors are not hidden in test failures.
Signals in a repository
- [tool.mypy] or pyrightconfig.json, tsconfig.json with strict flags.
- A tsc --noEmit, mypy or pyright step in CI or a typecheck script.