dunnart runs every TypeScript --strict sub-flag in isolation and tells you exactly how many errors each one would add. Start with the cheapest. Ship green diffs. Stop staring at 2,000 red squiggles.
--strict flag, independentlytsconfig.jsontypescripttypescript
The official TypeScript advice for migrating to strict is basically "flip it on and fix the errors." For a greenfield app that's fine. For a 300-file codebase you've been shipping for three years, it's a week-long stall with a PR no reviewer wants to touch.
The truth is that strict is eight independent flags, and they're wildly uneven. noImplicitAny might cost you 400 errors. strictBindCallApply might cost you two. But you can't see that distribution until you've already done the work.
dunnart measures it for you. Once you know which flag is the cheap one, migration stops being a project and starts being a series of small PRs you can land between lunch and standup.
strictBindCallApply, it's two errors" is a task.
— the premise of this tool
Runs through the real TypeScript compiler API. The numbers are what tsc would tell you — no parsing, no heuristics.
Extends the config you already have. Already enabled some strict flags? They show up as already on ✓ and get skipped.
Rank by delta so you always have an answer to "what's the next small PR I can ship toward strict mode?"
Pipe --json into a dashboard, a CI check, or a chart tracking your migration progress week over week.
npx dunnart in the repo root. That's it. No init step, no plugin, no editor extension.
Just typescript itself. No bundler, no AST library, no magic. Audit it in an afternoon.
Per-flag tsc runs scale with file count × 8 and can take a minute on very large projects. That's the cost of exact counts.
strictPropertyInitialization is a freeloaderIt requires strictNullChecks to actually emit errors, so its isolated delta is often 0. Its "true" cost is paid once you enable strictNullChecks.
skipLibCheck is inheriteddunnart uses your project's tsconfig as-is. Run against a tsconfig with skipLibCheck: true for the cleanest results about your own code.