TypeScript 5の新機能 - より高速で使いやすく進化

2025.12.18

TypeScript 5の概要

TypeScript 5は、大幅なパフォーマンス改善と新機能を備えたメジャーリリースです。ビルド速度の向上、新しいデコレーター構文、型システムの強化が含まれています。

デコレーターの正式サポート

ECMAScriptのデコレーター提案(Stage 3)に準拠した新しいデコレーター構文が利用可能になりました。

function logged(originalMethod: any, context: ClassMethodDecoratorContext) {
  const methodName = String(context.name);

  return function (this: any, ...args: any[]) {
    console.log(`Calling ${methodName} with`, args);
    const result = originalMethod.call(this, ...args);
    console.log(`${methodName} returned`, result);
    return result;
  };
}

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

従来との違い: experimentalDecoratorsフラグは不要になり、新しい標準デコレーターが使用できます。

const型パラメータ

リテラル型をより簡単に推論できるようになりました。

// 従来
function getConfig<T extends readonly string[]>(items: T): T {
  return items;
}
const config = getConfig(['a', 'b', 'c'] as const);

// TypeScript 5
function getConfig<const T extends readonly string[]>(items: T): T {
  return items;
}
const config = getConfig(['a', 'b', 'c']); // as const 不要
// 型: readonly ['a', 'b', 'c']

パフォーマンスの改善

TypeScript 5では、内部構造の最適化により大幅な高速化を実現しています。

項目改善率
ビルド速度10-25%向上
パッケージサイズ約50%削減
メモリ使用量削減

その他の新機能

すべてのenumがユニオン型に

enum Color {
  Red,
  Green,
  Blue
}

// Color型は Color.Red | Color.Green | Color.Blue として扱われる

moduleResolution: bundler

モダンなバンドラー向けのモジュール解決戦略が追加されました。

{
  "compilerOptions": {
    "moduleResolution": "bundler"
  }
}

移行のポイント

  • target: ES2022以降を推奨
  • 新しいデコレーターへの移行を検討
  • moduleResolution: bundlerの活用

まとめ

TypeScript 5は、開発者体験の向上とパフォーマンス改善を両立したリリースです。新しいデコレーター構文やconst型パラメータにより、より型安全で表現力豊かなコードが書けるようになりました。

← 一覧に戻る