Pada nilai bertipe union, TypeScript belum mengizinkan operasi yang hanya ada di salah satu anggotanya. Pemeriksaan typeof di dalam if membuat kompiler menyempitkan tipenya di dalam blok tersebut.
function panjangNilai(nilai: string | number): number {
if (typeof nilai === "string") {
return nilai.length; // di sini nilai pasti string
}
return nilai; // di sini nilai pasti number
}Setelah blok if yang memeriksa string, TypeScript tahu satu-satunya kemungkinan yang tersisa adalah number, sehingga nilai boleh dikembalikan langsung sebagai angka.