Bun 1.4.3がbun checkを追加、より高速なTypeScriptの型チェッカー
Bun 1.4.3は、TypeScript(タイプスクリプト)の型チェッカーbun checkを内蔵しました。Bunによると、tsc 7.0.2より3倍から6.4倍速く動作し、51,210件の適合性テストすべてに合格します。
5 分で読めます

数字で見る
- of 51,210 TypeScript 7.0.2 conformance tests passed
- 51,210
- less memory than tsc 7.0.2, per Bun
- 2.2x-4.9x
- less CPU use while a server sits idle
- 67-89%
- Next.js packages/next
- 6.4x
- mikro-orm
- 5x
- VS Code src
- 4.8x
- Playwright
- 4.2x
- Storybook scripts
- 3.5x
- Next.js root
- 3.1x
- Nuxt
- 3x
Bun 1.4.3は2026年10月10日にリリースされ、ランタイムに組み込まれたTypeScriptの型チェッカーbun checkを追加しました。Bunによると、Microsoft自身のチェッカーであるtsc 7.0.2より3倍から6.4倍速く動作し、メモリ使用量は2.2分の1から4.9分の1に抑えられます。型チェッカーは、コードを実行せずに読み取り、型エラーを報告します。大規模なプロジェクトでは、このチェックがCIパイプラインで最も遅いステップの1つになることがよくあります。CIパイプラインとは、プルリクエストのたびに実行される自動ビルドのことです。
Bunは、パッケージマネージャー、バンドラー、テストランナーも同梱したJavaScriptランタイムです。1.4系は、8月にBunのコードをZigからRustに移行したバージョンです。
bun checkの機能
Bun 1.4.3のリリース記事によると、bun checkはtypescript-goの移植版です。typescript-goは、Goで書かれたTypeScript 7のコンパイラーで、tsc 7として提供されています。Bunのドキュメントによると、このコマンドはtsconfig.jsonを読み込み、TypeScript 7のtscと同じエラーを報告し、すべてのCPUコアを使います。
このコマンドはチェックだけを行います。JavaScript、.d.ts型ファイル、ソースマップ、.tsbuildinfoファイルは一切書き出しません。また、言語サーバーもないため、エディターは引き続き独自のTypeScriptのコピーを実行します。このコマンドは、エラーを見つけると終了コード1を、見つけなければ0を返します。
Bunは、正確さに関する2つのテスト結果を報告しています。
- TypeScript 7.0.2の適合性テストスイートで、51,210件中51,210件に合格しています。
- 72のオープンソースプロジェクトで、1,103の構成のうち1,102が同一の結果になりました。Bunは286,267件のエラーを比較し、vuejs/coreで1件の不一致を見つけました。
同じチェックは、ほかのコマンドの中でも動きます。bun --check、bun test --check、bun build --check、bun run --checkは、まず型チェックを行い、そのあと通常の処理をします。
Bunのベンチマーク結果
Bunは、16コアのApple silicon搭載Macで、tsc 7.0.2と比較しました。
| プロジェクト | ファイル数 | bun check | tsc 7.0.2 | 高速化 |
|---|---|---|---|---|
| VS Code src | 9,795 | 1.24 s | 5.98 s | 4.8x |
| mikro-orm | 2,883 | 1.20 s | 5.97 s | 5.0x |
| Next.js packages/next | 2,881 | 0.28 s | 1.82 s | 6.4x |
| Next.js root | 3,547 | 0.42 s | 1.28 s | 3.1x |
| Storybook scripts | 1,039 | 0.27 s | 0.96 s | 3.5x |
| Nuxt | 839 | 0.27 s | 0.80 s | 3.0x |
| Playwright | 706 | 0.15 s | 0.64 s | 4.2x |
メモリ使用量も減りました。VS Codeのソースでは、Bunの計測でbun checkが2.14 GB、tsc 7.0.2が7.97 GBでした。リリース記事は、範囲の上限について完全には一貫していません。本文では「3倍から6.4倍速い」としていますが、グラフの代替テキストでは3倍から7倍となっています。
外部のベンチマーク
独立したプロジェクトが、2つ目の数字を示しています。tsrsは、開発者のMax Schwenk氏によるTypeScript 7チェッカーのRust移植版です。そのREADMEには、「大部分はAIコーディングエージェントによって書かれ、Max Schwenkが指示とレビューを行った」とあります。tsrsはbun checkと競合するため、その主張にもBunの主張と同じ慎重さが必要です。
64コアのLinuxマシンで実行したVS Codeのコードベースについて、tsrsは次の時間を報告しています。
| チェッカー | 時間 | ピークメモリ |
|---|---|---|
| tsc 7 (tsgo 7.0.2) | 9.79 s | 7.52 GiB |
| bun check (Bun 1.4.3 canary) | 0.87 s | 2.86 GiB |
| tsrs | 0.53 s | 2.64 GiB |
tsrsのREADMEは、重要な注意点を加えています。デフォルトでは、tsgoは4つのチェッカースレッドを使いますが、bun checkはすべてのコアを使います。tsrsがVS Codeで3つのツールすべてに16スレッドを割り当てたところ、tsgoは4.54秒、bun checkは1.49秒かかりました。差は本物ですが、デフォルト設定から受ける印象よりは小さくなります。
リリースのその他の内容
Bun 1.4.3は、ランタイム自体にも変更を加えています。
- アイドル時のCPU。 サーバーがアイドル状態のときのCPU使用量が67%から89%減りました。Bunは、この無駄の原因が、オンのままになっていた1秒間隔のガベージコレクションタイマーにあることを突き止めました。アイドル状態の2分間で、Expressサーバーは282 CPUミリ秒から57 CPUミリ秒に減りました。
- Bun.FetchSession。 新しいAPIで、リクエストのグループに独自のTLS、プロキシ、キープアライブの設定と、独自の接続プールを持たせられます。
- Bun.ModuleGraph。 実験的なAPIで、1つのアプリのコピーを1つのプロセスの中で多数実行します。リリース記事は、
graph.dispose()は「セキュリティサンドボックスではない」と警告しています。 - node:http。 大きなレスポンスが最大2.7倍速くなりました。
- bun install。 インストールしないtarballをスキップするようになりました。npm@10.9.2のインストールでは、tarballが196個から1個に減りました。
- セキュリティ。 このリリースは、TLSのホスト名照合にあるCVE-2026-48618を修正します。また、CVE-2023-44487とCVE-2025-8671に対応して、HTTP/2のストリームリセットにレート制限をかけます。
開発者にとっての意味
ほとんどのプロジェクトでは、切り替えは1行で済みます。Bunのドキュメントは、tsc --noEmitをbun checkに、tsc -bをbun check -bに対応させています。まずbun upgradeを実行し、次に自分のリポジトリで両方のコマンドの時間を計ってください。ハードウェア、スレッド数、プロジェクトの構成のすべてが結果を左右します。
CIを変更する前に、5つの点を確認してください。
- 型を公開するならtscを残すこと。
bun checkは.d.tsファイルを書き出さないため、ライブラリの作者はその手順にまだtscが必要です。 - ブロックされるオプションを探すこと。 チェックは古い設定で止まります。
moduleResolution: node10、baseUrl、target: es5、outFileなどです。 - Yarn PnPは非対応。 Yarnを使っている場合は、
nodeLinker: node-modulesを設定してください。 - checkという名前のスクリプトに注意すること。
package.jsonにcheckスクリプトが定義されていると、bun checkは代わりにそのスクリプトを実行します。その場合はbun --checkを使ってください。 - 共有ランナーではスレッド数を固定すること。 ドキュメントは、共有のCIマシンでは
--threads 4を勧めています。
エディターは独自のTypeScriptを実行するため、bun checkと結果が食い違うことがあります。ドキュメントは、bun add -d typescript@$(bun -p process.versions.typescript)で対応するバージョンをインストールするよう勧めています。
TypeScriptのツールは、ネイティブコードへの移行を続けています。MicrosoftはチェッカーをGoに移植し、Bunはその移植版をさらに移植し、tsrsはそれをもう一度Rustに移植しています。先月には、tsgolintも型を考慮したlintルールをGoにもたらしました。コミットのたびに型チェックを行うチームは、今では複数の高速なチェッカーを自分たちのコードで比較できます。
出典
- Bun v1.4.3 - Bun Blog
- tsrs: Rust port of the TypeScript 7 type checker - GitHub
- Type checking - Bun Docs
関連記事

Zod 4.6.6のマルウェア騒動、不正なコミットはnpmに届かず
10月11日に公開されたZod 4.6.6の履歴には、9月21日に仕込まれたマルウェア入りの悪意あるコミットが残っていました。それらは同日に取り消され、どれもnpmには届いていません。

DenoがCloudflareに合流、Deno Deployは6か月後に終了
Deno(ディーノ)のチームがCloudflareに合流します。Deno Deployは6か月後に終了し、ランタイムには最後の1年間、毎月の修正が提供されます。JSRはCloudflareに移ります。

npmマルウェア「MALFEX」、14か月間検知されず稼働
1人の攻撃者によるnpmのサプライチェーン攻撃「MALFEX」は、2023年以降に12個のパッケージを公開し、ダウンロード数は40,767回に達した。一部は今もアドバイザリーなしで公開されている。