Union ( | )
let kimlik: string | number;
kimlik = "12345678900"; // ✓
kimlik = 12345678900; // ✓
Daraltma (Narrowing)
TypeScript, kontrol akışına göre tipi daraltır:
function bicimlendir(deger: string | number): string {
if (typeof deger === "string") {
return deger.toUpperCase(); // burada string
}
return deger.toFixed(2); // burada number
}
Discriminated Union — ayırt edici alan
type Sonuc =
| { tur: "ok"; veri: string }
| { tur: "hata"; mesaj: string };
if (sonuc.tur === "ok") sonuc.veri; // güvenli
Görev
~~bicimlendir~~: parametre ~~string | number~~; string ise büyük harfe çevir, sayı ise 'N ₺' biçiminde döndür. ~~alaniOku~~: ~~{tur:'metin', metin} | {tur:'sayi', deger}~~ union'ından doğru alanı döndürsün (string döner).