NewsJavaScriptDeveloper Tools

Bun 1.4.3: bun check TypeScript Checker, 3–6x Faster Than tsc

Bun 1.4.3 bun check TypeScript type checker benchmark dashboard showing 3x to 6x speed improvement over tsc
Bun 1.4.3 ships bun check, a built-in TypeScript type checker 3x to 6.4x faster than tsc 7

Bun 1.4.3 shipped yesterday with bun check — a built-in TypeScript type checker that runs 3x to 6.4x faster than tsc --noEmit and uses 2.2x to 4.9x less memory. It is ported from Microsoft’s typescript-go, the same Go codebase that powers TypeScript 7. For CI pipelines doing type-only checks, the switch is one line.

The Numbers

Here is what bun check clocks against tsc 7 on a 16-core Apple Silicon Mac, measured on real open-source codebases:

ProjectFilesbun checktsc 7Speedup
VS Code src9,7951.24s5.98s4.8x
mikro-orm2,8831.20s5.97s5.0x
Next.js packages/next2,8810.28s1.82s6.4x
Nuxt8390.27s0.80s3.0x

Memory tells the same story. VS Code: 2.14 GB for bun check vs 7.97 GB for tsc 7 — 3.7x less. mikro-orm: 1.35 GB vs 6.67 GB — 4.9x less. Even small projects like Nuxt come out 2.2x leaner. The gains hold across project sizes.

Migrating From tsc –noEmit

The common CI pattern is to run tsc --noEmit as a pure type-checking step. bun check is a drop-in replacement for that specific command. It reads your tsconfig.json automatically and requires no typescript package in node_modules — Bun ships the checker itself.

# Before
tsc --noEmit

# After
bun check

It integrates with other Bun commands as well:

bun run --check script.ts   # type-check before running
bun build --check ./src/index.ts --outdir ./dist
bun test --check            # type-check before running tests

For project references, bun check -b replaces tsc -b --noEmit.

Why Trust It

Bun validated bun check against TypeScript 7.0.2’s full conformance suite — 51,210 tests across errors, types, symbols, declarations, and module resolution — and it passes all of them. The team also deliberately misconfigured 72 popular open-source repositories and compared output against tsc line-for-line. Add 136,235 fuzzer-generated functions diffed against tsc, plus 2,362 edge cases found while porting from typescript-go.

This matters given the context. Bun’s earlier Rust rewrite attracted criticism for soundness issues in AI-generated code. The bun check test coverage is the most concrete answer Bun has given to “can we trust this?”

What bun check Does Not Replace

Know the limits before changing your CI config:

  • No emit — bun check does not produce JavaScript or .d.ts files. Your editor’s TypeScript language server continues loading from node_modules/typescript.
  • Library authors still need tsc — publishing an npm package requires tsc --emitDeclarationOnly or a similar tool to generate declaration files.
  • Monorepo orchestration — tsc -b walks references arrays and builds packages in dependency order. bun check -b checks only; it does not orchestrate cross-package incremental builds.

The practical rule: if your step is tsc --noEmit, swap it. If your step builds, emits, or publishes, keep tsc in the pipeline.

The Rest of Bun 1.4.3

bun check is the headline, but 1.4.3 ships three other improvements worth noting. Idle server CPU drops 67–89%: a GC timer that previously fired every second now wakes every ten seconds, which matters on servers where the timer was burning CPU between requests. Large node:http responses are up to 2.7x faster. And --disallow-code-generation-from-strings — silently ignored in prior versions — now actually blocks eval(), new Function(), and related dynamic code paths. A stricter =strict mode extends the block to node:vm, data URL imports, and the inspector. Altogether, 166 issues were fixed.

Worth Trying Now

For CI type-checking, bun check is ready. The conformance testing is unusually thorough, the benchmark gains are real and consistent across project sizes, and replacing a tsc --noEmit step costs exactly one command change. Library authors and monorepo teams will still need tsc in the mix — but for the step that slows most TypeScript CI pipelines down, this is a concrete upgrade available today. See the Bun v1.4.3 release notes and the bun check documentation for full details.

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to cover latest tech news, controversies, and summarizing them into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *

    More in:News