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型パラメータにより、より型安全で表現力豊かなコードが書けるようになりました。
← 一覧に戻る