type stringOrNumber = string | number;
let value: stringOrNumber = 'hello';
 
value = 42; // 本来この代入はエラー
  • 異なる型でも代入できるように特別な型を独自に作れる
  • 初期値がnullの変数の処理に使える

型の交差

interface A {
    a: string;
}
 
interface B {
    b: number;
}
 
type AB = A & B;
let value: AB = {a: 'hello', b: 42};
console.log(value)
  • クラスやインターフェースを組み合わせて新たな型が作れる
  • より高度な抽象化ができる