はじめに
TypeScriptでは、型の柔軟性を向上させるために多くの高度な型が導入されています。その中でも、Union型(|
を使用)とIntersection型(&
を使用)は、異なる型の組み合わせを表現するための強力なツールです。この記事では、これらの型の基本的な使い方と、それぞれの適切な使用シーンについて解説します。
Union型: 複数の型の中から一つを選ぶ
Union型は、変数が持つことのできる型を複数指定するためのものです。これにより、ある変数が複数の異なる型の値を取る可能性がある場合に使用します。
type StringOrNumber = string | number;
let value: StringOrNumber;
value = "Hello"; // OK
value = 123; // OK
使用シーン
- 関数の引数や返り値が複数の型のいずれかである場合。
- APIの応答や外部のライブラリから取得するデータの型が不定である場合。
Intersection型: 複数の型の特性をすべて持つ
Intersection型は、複数の型がすべて持つ特性を組み合わせるためのものです。オブジェクトの型を合成する場面でよく使用されます。
type Name = {
name: string;
}
type Age = {
age: number;
}
type Person = Name & Age;
const person: Person = {
name: "Alice",
age: 30
};
使用シーン
- 既存の型を拡張して新しい型を作成する場合。
- 複数のインターフェースや型を組み合わせて、一つのオブジェクトの型を定義する場合。
まとめ
Union型とIntersection型は、TypeScriptの型システムを最大限に活用するための重要なツールです。Union型は「この中から一つ」という選択を、Intersection型は「これらすべて」という組み合わせを表現します。それぞれの特性を理解し、適切な場面で使用することで、より強固で読みやすいTypeScriptのコードを書くことができます。