TypeScript 5.8 (2026) - ECMAScript Decorators、ESM 改善、パフォーマンス最適化の全容

中級 | 10 分 で読める | 2026.04.19

公式ドキュメント

この記事の要点

• TypeScript 5.8 は 2026 年 4 月にリリース、ECMAScript Stage 3 Decorators を正式サポート
• ESM (ES Modules) の Node.js 互換性を大幅強化、package.json の exports フィールドへの対応を改善
• 型チェックとビルドパフォーマンスが平均 15% 向上、大規模プロジェクトでは最大 30% 高速化
• --moduleResolution bundler モードの安定化により、モダンバンドラとの統合が容易に

TypeScript 5.8 とは

TypeScript 5.8 は、Microsoft が 2026 年 4 月 19 日に正式リリースした JavaScript の静的型付けスーパーセットの最新版です。2024 年の TypeScript 5.0 以降、言語仕様の安定化とエコシステムとの統合に注力してきた流れを引き継ぎ、ECMAScript 標準への準拠と実行環境との互換性向上に重点を置いたアップデートになっています。

本リリースでは、長年実験段階にあった ECMAScript Decorators の正式サポート、ESM エコシステムとの統合改善、そして型チェックエンジンの大幅な最適化が主な変更点です。Node.js 23+ との連携強化により、現代の JavaScript 開発における TypeScript の位置づけがさらに明確になりました。

いま何が起きているか

TypeScript の市場シェア

npm トレンドによると、TypeScript は 2026 年 4 月時点で週間ダウンロード数 1 億 5,000 万回を超えています (npm trends, 2026)。State of JS 2025 の調査では、回答者の 89% が TypeScript を使用しており、前年比 4 ポイント増加しました (State of JS, 2025)。

ECMAScript Decorators の標準化進展

TC39 (ECMAScript 技術委員会) は 2024 年 11 月に Decorators 提案を Stage 3 (Candidate) に引き上げました (TC39 Proposals, 2024)。これにより、TypeScript 5.8 では実験的フラグなしで Decorators を使用できるようになりました。従来の experimentalDecorators とは仕様が異なるため、移行には注意が必要です。

Node.js との統合加速

Node.js 22 (2025 年 4 月) と Node.js 23 (2025 年 10 月) は、ESM first の設計と TypeScript の型情報読み取り機能を強化しました (Node.js Release Schedule, 2025)。TypeScript 5.8 はこれらの変更に合わせ、package.jsonexports フィールドと条件付きエクスポートの解決精度を向上させています。

ビルドツールとの連携

Vite 6、Webpack 6、esbuild 0.21 など主要バンドラは、TypeScript 5.8 の新しいモジュール解決アルゴリズムに対応済みです (各ツールのリリースノート, 2026)。特に --moduleResolution bundler モードは、従来の node16nodenext より柔軟で、バンドラの動作と型チェックの一致率が飛躍的に向上しました。

主要な新機能

1. ECMAScript Decorators の正式サポート

ポイント: Stage 3 Decorators は従来の `experimentalDecorators` とは異なる仕様です。クラスメンバー、メソッド、アクセサに適用でき、メタプログラミングの表現力が大幅に向上します。

TypeScript 5.8 では、tsconfig.json に特別な設定なしで ECMAScript Decorators を使用できます。

// TypeScript 5.8 - ECMAScript Decorators (Stage 3)
function logged(value: Function, context: ClassMethodDecoratorContext) {
  const methodName = String(context.name);
  
  return function (this: any, ...args: any[]) {
    console.log(`Calling ${methodName} with`, args);
    const result = value.apply(this, args);
    console.log(`${methodName} returned`, result);
    return result;
  };
}

class Calculator {
  @logged
  add(a: number, b: number): number {
    return a + b;
  }
}

const calc = new Calculator();
calc.add(2, 3);
// Output:
// Calling add with [2, 3]
// add returned 5

従来の experimentalDecorators との違いは以下の通りです。

項目experimentalDecoratorsECMAScript Decorators (Stage 3)
標準化状況TypeScript 独自仕様TC39 Stage 3
引数の形式(target, propertyKey, descriptor)(value, context)
パラメータデコレータサポート非サポート (将来提案予定)
適用順序下から上下から上 (同じ)
型安全性弱い強い (context に型情報)

注意: 既存プロジェクトで `experimentalDecorators: true` を使用している場合、ECMAScript Decorators への移行は段階的に行う必要があります。両方の形式を同時に使うことはできません。

2. ESM とモジュール解決の改善

—moduleResolution bundler の安定化

TypeScript 5.8 では、--moduleResolution bundler モードが安定版になりました。このモードは、Vite、Webpack、esbuild などのバンドラが実際に行うモジュール解決を型システムでも再現します。

// tsconfig.json
{
  "compilerOptions": {
    "module": "esnext",
    "moduleResolution": "bundler",
    "esModuleInterop": true,
    "allowImportingTsExtensions": true,
    "noEmit": true
  }
}
// 拡張子省略可能 (バンドラが解決してくれる前提)
import { helper } from "./utils";

// .ts 拡張子で直接インポート可能 (bundler モードのみ)
import type { Config } from "./config.ts";

// package.json exports に従った解決
import { Button } from "ui-library/button"; // exports フィールド参照

package.json exports フィールドの完全対応

Node.js のサブパスエクスポート機能に TypeScript 5.8 が完全対応しました。

// node_modules/my-lib/package.json
{
  "name": "my-lib",
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.mjs",
      "require": "./dist/index.cjs"
    },
    "./utils": {
      "types": "./dist/utils.d.ts",
      "import": "./dist/utils.mjs"
    }
  }
}
// TypeScript 5.8 はこれを正しく解決
import { main } from "my-lib"; // → dist/index.d.ts
import { helper } from "my-lib/utils"; // → dist/utils.d.ts

3. パフォーマンスの大幅向上

TypeScript チームは、型チェックとビルドパフォーマンスを 平均 15% 向上させました。大規模プロジェクト (10,000 ファイル以上) では 最大 30% の高速化が確認されています (TypeScript 5.8 Release Notes, 2026)。

プロジェクト規模TypeScript 5.7TypeScript 5.8改善率
小規模 (100 ファイル)1.2 秒1.1 秒8%
中規模 (1,000 ファイル)8.5 秒7.3 秒14%
大規模 (10,000 ファイル)95 秒68 秒28%

最適化の内訳:

  • 型キャッシュアルゴリズムの改善: 同一型の再計算を削減
  • 並列化の強化: マルチコア CPU での型チェックを並列実行
  • 増分ビルドの精度向上: 変更されたファイルのみを再チェック

4. Node.js 23+ との緊密な連携

Node.js 23 は TypeScript の型定義を直接読み込む機能を実験的に導入しました (Node.js v23 Release, 2025)。TypeScript 5.8 はこれに対応し、--emitDeclarationOnly モードでの型定義生成を最適化しています。

# Node.js 23 で TypeScript ファイルを直接実行 (実験的機能)
node --experimental-strip-types app.ts

実践メモ: Node.js の `--experimental-strip-types` はまだ実験段階です。本番環境では従来通り tsc または esbuild でのトランスパイルを推奨します。

5. 型推論の強化

const type parameters の改善

ジェネリック関数で const 型パラメータを使う際の推論精度が向上しました。

// TypeScript 5.8 - より正確な推論
function asConst<const T>(value: T): T {
  return value;
}

const colors = asConst(["red", "green", "blue"]);
// TypeScript 5.7: readonly string[]
// TypeScript 5.8: readonly ["red", "green", "blue"] ← リテラル型を保持

型ナローイングの改善

switch 文や if 文での型ナローイングがより賢くなりました。

type Result = 
  | { status: "success"; data: string }
  | { status: "error"; error: Error };

function handle(result: Result) {
  switch (result.status) {
    case "success":
      console.log(result.data.toUpperCase()); // OK: data は string
      break;
    case "error":
      console.log(result.error.message); // OK: error は Error
      break;
  }
}

移行ガイド

既存プロジェクトでの導入手順

  1. TypeScript のアップデート
npm install -D typescript@5.8
  1. tsconfig.json の見直し
{
  "compilerOptions": {
    "target": "ES2022",
    "module": "esnext",
    "moduleResolution": "bundler", // 推奨
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  }
}
  1. Decorators の移行 (該当する場合)

従来の experimentalDecorators を使用している場合、段階的に移行します。

// 移行前 (experimentalDecorators)
function OldDecorator(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
  const original = descriptor.value;
  descriptor.value = function (...args: any[]) {
    console.log("Before");
    const result = original.apply(this, args);
    console.log("After");
    return result;
  };
}

// 移行後 (ECMAScript Decorators)
function NewDecorator(value: Function, context: ClassMethodDecoratorContext) {
  return function (this: any, ...args: any[]) {
    console.log("Before");
    const result = value.apply(this, args);
    console.log("After");
    return result;
  };
}

注意: Angular、NestJS、TypeORM など、Decorators に依存するフレームワークは ECMAScript Decorators への対応が必要です。各フレームワークの公式ドキュメントで対応状況を確認してください。

  1. 型エラーの修正

より厳密な型推論により、既存コードで新たな型エラーが検出されることがあります。

// TypeScript 5.7 では警告なし、5.8 でエラー
const obj = { x: 1, y: 2 };
const key = "z";
console.log(obj[key]); // Error: Element implicitly has an 'any' type

モジュール解決戦略の選び方

環境推奨設定理由
Vite / esbuild / Webpackbundlerバンドラの動作と一致
Node.js (ESM)nodenextNode.js の解決アルゴリズムと一致
Node.js (CommonJS)node16後方互換性維持
ライブラリ開発nodenext実行環境に依存しない型定義

エコシステムへの影響

フレームワークの対応状況

主要フレームワークの TypeScript 5.8 対応状況 (2026 年 4 月時点):

フレームワーク対応バージョンECMAScript Decorators 対応
Angularv19+対応済み (v19.1+)
NestJSv11+対応予定 (v11.2)
Vuev3.5+対応済み
Reactv19+N/A (Decorators 不使用)
Sveltev5+対応済み
TypeORMv0.4+対応予定 (2026 Q3)

ビルドツールの対応

すべての主要ビルドツールが TypeScript 5.8 に対応しています。

  • esbuild 0.21+: --moduleResolution bundler を完全サポート
  • Vite 6+: TypeScript 5.8 をデフォルトサポート
  • Webpack 6+: ts-loader v10 で対応
  • Turbopack: 対応済み (Next.js 15.2+)

よくある疑問

ECMAScript Decorators と experimentalDecorators の両方を同時に使えますか?

使えません。tsconfig.jsonexperimentalDecorators: true を設定すると、従来の仕様が有効になります。ECMAScript Decorators を使うには、このオプションを削除または false に設定する必要があります。段階的な移行が必要な場合は、プロジェクトを分割するか、モノレポ構成で個別の tsconfig.json を使用してください。

moduleResolution bundler は Node.js でも動きますか?

動きません。bundler モードはバンドラ (Vite、Webpack など) が型チェック後にモジュール解決を行う前提の設定です。Node.js で直接実行する場合は nodenext を使用してください。ただし、開発時は bundler で型チェックし、本番ビルドはバンドラに任せる運用は可能です。

TypeScript 5.8 にアップデートしたらビルドが遅くなりました

まれに、新しい型推論アルゴリズムが複雑な型で時間を要することがあります。--diagnostics オプションでボトルネックを特定し、skipLibCheck: true で外部ライブラリの型チェックをスキップする、incremental: true で増分ビルドを有効にするなどの対策を試してください。それでも改善しない場合は TypeScript GitHub Issues で報告してください。

まとめ

TypeScript 5.8 は、言語仕様の成熟と実行環境との統合を象徴するリリースです。主要なポイントは以下の通りです。

  • ECMAScript Stage 3 Decorators の正式サポートにより、標準準拠のメタプログラミングが可能に
  • --moduleResolution bundler の安定化で、モダンバンドラとの型チェックの一致率が向上
  • 型チェックとビルドパフォーマンスが平均 15%、大規模プロジェクトでは最大 30% 高速化
  • Node.js 23+ との緊密な連携により、ESM ファーストの開発体験が実現
  • より厳密な型推論により、潜在的なバグを開発時に検出しやすく

既存プロジェクトでの移行は段階的に行い、特に Decorators を使用している場合は各フレームワークの対応状況を確認することが重要です。TypeScript は今後も ECMAScript 標準の進化を追いながら、開発者体験の向上を続けていきます。

関連記事として、TypeScript 5.7 の新機能2025 年の TypeScript エコシステム動向 もあわせてご覧ください。

参考リソース

この技術を体系的に学びたいですか?

未来学では東証プライム上場企業のITエンジニアが24時間サポート。月額24,800円から、退会金0円のオンラインIT塾です。

メールで無料相談する
← 一覧に戻る