Verification · Code review · Logic and correctness review
Type and contract consistency
Check that values crossing module boundaries keep their meaning.
How to build it
- Run the type checker in strict mode across every package in the repository.
- Annotate public interfaces and the values that cross module boundaries.
- Fail CI on any type error, with no blanket ignore comments at module boundaries.
Signals in a repository
- A strict setting in tsconfig.json, mypy or pyright config files.
- A CI step that runs tsc --noEmit, mypy or pyright.
- Type stubs or declaration files for the public API.
In practice
148 repositories run a tool for this check in the scanned set.
tsc· 117 reposmypy· 35 repospyright· 16 repos
Examples
-
freeCodeCamp/freeCodeCamp ·
tsctsc -p tsconfig.build.json -
nousresearch/hermes-agent ·
tsctsc --noEmit -p tsconfig.json -
microsoft/vscode ·
tsctsc --project build/tsconfig.json -
vercel/next.js ·
tsctsc -
facebook/react-native ·
tsctsc -p packages/react-native/__typetests__/tsconfig.legacy.json