JavaScript Weekly #778 Digest

JavaScript Weekly #778 Digest

発行日: 2026-03-24 | 編集: Peter Cooper (Cooperpress) Web版


🔶 メイン記事

TypeScript 6.0 正式リリース — JSベースコンパイラ最終版、Go移行への橋渡し

devblogs.microsoft.com

TypeScript 6.0は現行JavaScriptコードベースでの最後のメジャーリリース。Go言語で書き直される7.0への移行を全面的に意識した"ブリッジリリース"として位置づけられている。

主要な変更点:

  • デフォルト値の大幅変更: strict: truemodule: esnextrootDir: .types: []node_modules/@typesを自動読込しない)がデフォルトに。特にtypes: []は多くのプロジェクトで"types": ["node"]の明示指定が必要になる
  • 非推奨化の波: target: es5、AMD/UMD/SystemJSモジュール出力、--baseUrl--outFile、旧--moduleResolution nodeが非推奨に。import ... assert {}構文も廃止
  • --stableTypeOrderingフラグ: 6.0の型順序を7.0に一致させ、推論の差異を事前診断可能に
  • 新機能: Temporal API型、RegExp.escapeサポート、#/サブパスインポート、thisレス関数のコンテキスト感度低減

背景: 7.0(旧コードネーム"Project Corsa")はGoネイティブ化により最大10倍の高速化を見込む。MicrosoftはV8速度+共有メモリマルチスレッドの恩恵を狙う。驚くべきことに「7.0は完成にかなり近い」と公式が明言しており、nightlyビルドが既にnpmとVS Code拡張で利用可能。

💡 Insight

  • types: []デフォルト化は最も注意が必要。現在のtsconfig.jsonに"types": ["node"]がなければビルド破損する。strict: trueは既に多くのプロジェクトで有効なので影響軽微
  • 移行戦略: 6.0→7.0は段階的。6.0でignoreDeprecations: "6.0"を設定すれば非推奨オプションは動作継続するが、7.0で完全削除される。早期に--stableTypeOrderingで型推論の差異をテストすべき
  • エコシステム全体: Go移行は「JSで書かれたツールをGoで書き直す」トレンド(esbuild, Turbopack等)の集大成。コンパイラ自身がこの流れに乗った歴史的転換点

Edge.js: Node.jsアプリをWebAssemblyサンドボックスで実行 — Docker不要のセキュア実行環境

wasmer.io

Wasmerが発表したアルファ版ランタイム。既存のNode.jsアプリを変更なしでWASMサンドボックス内で実行可能。Deno/Cloudflare Workersとは根本的にアプローチが異なる。

アーキテクチャの核心:

  • JSエンジン自体はネイティブ実行、システムコール・ネイティブモジュールのみをWASIXでサンドボックス化。全体をWASM化するよりオーバーヘッドが大幅に小さい
  • JSエンジン選択可能: V8、JavaScriptCore、QuickJSをプラガブルに切替
  • Node.js v24互換を目標。libuv/simdutf/ada/llhttp/ncryptoなどNode同一の依存を使用
  • edge --safeで完全サンドボックスモード。edge node myfile.jsedge pnpm run devで既存ワークフローをラップ

性能: サンドボックスモードでNode.jsネイティブ速度の**70-95%**を達成(改善継続中)

ユースケース: AIエージェント・MCPサーバーのセキュア実行、Edge Computing、コンテナ不要のサーバレスデプロイ

💡 Insight

  • **「安全でない部分だけサンドボックス化」**という発想が秀逸。JSは本質的にサンドボックスされているため、ファイルI/Oやネットワーク等のOS境界のみを隔離すれば十分という合理的設計
  • AIエージェントが任意のNode.jsコードを実行する文脈(MCP、Claude Code等)で、Docker無しにセキュリティ境界を確保できる可能性は非常に大きい

pnpm 11 Beta 0: SQLiteストア・SBOM対応・設定刷新 — パッケージ管理の次世代

GitHub Release

主要変更:

  • SQLiteベースストア: メタデータをJSONファイルからSQLiteに移行。msgpack形式の最適化されたインデックスファイルフォーマットと組み合わせ、小さなブロブ(<100KiB)の読み書きが従来より高速に
  • pnpm sbomコマンド: CycloneDX 1.7/SPDX 2.3形式のSoftware Bill of Materials生成。EU Cyber Resilience Act対応を見据えたファーストパーティSBOM対応--prod/--dev/--filterオプション完備
  • 設定の大幅刷新: pnpm-workspace.yamlでパッケージごとの設定(packageConfigs)、ビルドセキュリティの厳格化(allowBuildsで明示許可制に)
  • 4つの新コマンド追加: sbom含む

背景: OWASP CycloneDXプロジェクトCo-Leadがレビューに参加し、npmのsbom実装の問題点を指摘・修正。npmより正確なSBOM生成を実現。

💡 Insight

  • pnpm 11のビルドセキュリティ厳格化(allowBuilds)は、electron等のネイティブビルドを含むプロジェクトで設定変更が必須になる。移行時の注意点
  • SBOMコマンドはサプライチェーンセキュリティの文脈で急速に重要度が増している。CI/CDパイプラインへの組み込みを検討する価値あり

📋 短信 (IN BRIEF)

  • 🤖 Node.jsコアへのAI生成コード論争 — io.jsフォーク創始者のindutnyがAI支援コントリビューションへの反対署名を開始。LLM生成コードのコア実装への関与を巡りコミュニティが二分
  • 😢 Deno社から大量離職 — 多数のDeno従業員が退社を発表。社員のJosh Collinsworthは「Denoはなくならない。厳しい時期なだけだ」とコメント。Preact作者Marvin Hagemeyerも退社組
  • 📗 Chibivue — ミニマルなVue.js実装を自分で構築しながら学べるオンラインブック+コードプロジェクト

📦 リリース情報

Next.js 16.2

nextjs.org

  • next dev起動が~400%高速化(16.1比87%改善)
  • RSCペイロードデシリアライゼーション最大350%高速化(JSON.parse reviver廃止→2段階処理に変更)
  • 実アプリでHTML描画25-60%高速化
  • Server Fast Refresh(サーバー側HMRの刷新、67-100%高速化)
  • next start --inspect、Hydration Diff Indicator、Server Function Logging追加
  • AIエージェント向けAGENTS.mdnext-browser実験的DevTools
  • Turbopackで200+バグ修正

💡 Insight

  • RSC高速化の技術的核心: V8のJSON.parse reviverコールバックはすべてのkey-valueペアでC++/JS境界をまたぐため、no-opでも4倍遅い。ReactチームがJSON.parse() → 純JSの再帰ウォークに変更した成果がNext.js経由で全ユーザーに波及

その他リリース


📖 記事・動画


🛠 コード&ツール


🌐 エコシステム情報

  • 🤖 VS CodeチームのAI活用事例 — イシュー管理からリリースまでAI活用を公開。毎週リリースを可能にしている舞台裏
  • 🔒 Secretlint — リポジトリ内のシークレット漏洩を検出する専用リンター
  • 📜 Rob Pike's 5 Rules of Programming (1989) — Go言語・UTF-8共同開発者の1989年プログラミング5原則が今週バイラル化。2026年でも完全に有効
  • 🧠 Comprehension Debt — Addy Osmaniが「理解の負債」を提唱。AIエージェント時代の問いは「どうやってもっとコードを生成するか?」ではなく「出荷するコードをどう理解するか?

今号の3大テーマ

1. 「境界のコスト」が浮き彫りに

TypeScript 6.0→7.0はJS/Go境界、Edge.jsはJS/OS境界、WASM→TSパーサー記事はJS/WASM境界。いずれも「境界をまたぐコストをいかに最小化するか」が技術的核心。Next.js 16.2のRSC高速化もJSON.parse reviverのC++/JS境界コスト排除が本質。

2. エコシステムの世代交代

Deno社の大量離職、Node.jsコアのAIコード論争、TypeScriptのJS→Go移行。JavaScript/TypeScriptエコシステム全体が次のフェーズに移行する過渡期にある。

3. 「理解」の重要性の再浮上

Addy Osmaniの「comprehension debt」、JS Bloat記事の「なぜこのパッケージがあるか問え」、Rob Pikeの1989年原則。AIがコード生成を加速する中、人間が何を理解し何を出荷するかという問いが回帰している。