共用体 (union) の基本
変数の型をタイプアノテーションで指定するときに、複数の型を |
(or) でつなげて指定すると、それらのいずれの型の値でも格納できる 共用体 (union) となります。
let a: string | number;
a = 'Hello'; // OK
a = 123; // OK
a = true; // NG
function foo(value: string | number) {
// ...
}
共用体のタイプエイリアスを定義する
ある種類の共用体を繰り返し使用する場合、タイプエイリアスを定義しておくと、何度も同じ記述をしなくて済みます。
// interface Context {};
type ContextOrString = Context | string;
定義したタイプエイリアスは、通常の型と同様に使用することができます。
function onMessage(context: ContextOrString) {
// ...
}