Union型 とは

| (縦棒) を使って、「A または B」という複数の型のいずれかを許容する指定方法です。

let id: number | string;

id = 101;       // OK
id = "p-101";   // OK
// id = true;   // エラー:booleanは許可されていない

なぜ嬉しいのか?

「基本は数値だけど、例外的に文字列も入る」といったJavaScriptらしい柔軟性を保ちつつ、意図しない型(例:真偽値など)が混入するのを防げます。

[!TIP] 実務では「データがあるか、空(null)か」を表現する際によく使われます。 name: string | null

要約