TypeScript 5.x のアップデート
TypeScriptは、Microsoftによって積極的にメンテナンスされ、アップデートが続けられています。
バージョン 5.x では、多くのユーティリティやクオリティ・オブ・ライフ(QoL)に関するアップデートが行われました。この章では、より厳密かつ柔軟な型安全性(Type Safety)を実現するための、特に代表的なアップデート内容を扱います。
なお、これらの機能はバージョン 5.x 以降でのみ利用可能です。
1. テンプレートリテラル型 (Template Literal Types)
テンプレートリテラル型(Template Literal Types)を使用すると、テンプレートリテラルを用いてより精密な型を作成できるようになります。これによって、コンパイル時(Compile time)の文字列の実際の値に依存するカスタム型を定義することが可能です。
例
type Color = "red" | "green" | "blue";
type HexColor<T extends Color> = `#${string}`;
// 使用例:
let myColor: HexColor<"blue"> = "#0000FF";2. インデックスシグネチャラベル
インデックスシグネチャラベル(Index Signature Labels)を使用すると、コンピューテッドプロパティ(Computed property)名を用いてインデックスシグネチャにラベルを付けることができます。これにより、ダイナミックオブジェクト(動的オブジェクト)を扱う際に、より説明的な型情報を提供することが可能になります。
例
type DynamicObject = { [key: `dynamic_${string}`]: string };
// 使用例:
let obj: DynamicObject = { dynamic_key: "値" };