Özet - null & undefined
- TypeScript kursu
- Başlangıç
- Ders 66/89
- 4 dk
Güvenli erişimle bir kullanıcı profil programı yazarsın.
Özet - Güvenli profil programı
Optional chaining ve nullish coalescing'i birleştirerek güvenli profil programları yazabilirsin. Önce ?. ile özelliğe güvenli erişir, sonra ?? ile varsayılan bir değer verirsin.
interface Profile { name: string; address?: { city?: string }; }
function cityOf(p: Profile): string {
return p.address?.city ?? "bilinmiyor";
}address yoksa veya city yoksa sonuç otomatik olarak "bilinmiyor" olur; uygulama asla çökmez.
Uygulama Güvenli profil programı yaz
Profile arayüzünü tanımla: name: string ve isteğe bağlı address. address bir nesnedir ve içinde isteğe bağlı city: string bulunur. findCity(p: Profile): string fonksiyonu yaz: address ve city varsa şehri döndür; aksi halde "bilinmiyor" döndür. İki örnek çağırıp sonucu yazdır.
Başlangıç kodu
// Profile arayüzü tanımla: name ve isteğe bağlı address
// address bir nesnedir, içinde isteğe bağlı city bulunur
// findCity(p: Profile): string döndürür
// p.address ve p.address.city için güvenli erişim kullan
// city yoksa "bilinmiyor" döndürÖrnek çözüm
interface Profile {
name: string;
address?: { city?: string };
}
function findCity(p: Profile): string {
return p.address?.city ?? "bilinmiyor";
}
console.log(findCity({ name: "Ada", address: { city: "Bursa" } }));
console.log(findCity({ name: "Bob" }));Beklenen çıktı
Bursa bilinmiyor
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 address undefined iken p.address?.city ?? "bilinmiyor" ifadesi ne döndürür?
interface Profile { name: string; address?: { city?: string }; }
const p: Profile = { name: "Ada" };
console.log(p.address?.city ?? "bilinmiyor");- undefined döndürür
- hata fırlatır
- "bilinmiyor" döndürür Doğru cevap
- null döndürür
Açıklama: Önce optional chaining address undefined olduğu için kısa devre yapar ve undefined döndürür. Sonra ?? operatörü undefined gördüğü için sağ tarafı alır.
2 Zincir ve varsayılanı tamamla
const city = p.address?.city ____ "bilinmiyor";
const city = p.address?.city ?? "bilinmiyor";
Açıklama: address veya city null/undefined ise varsayılan vermek için ?? gerekir. || yanlış çünkü 0 veya boş string gibi geçerli değerleri de değiştirir; burada city string olduğu için risk oluşturur.
3 Birleşik model parçaları
| Kavram | Anlamı |
|---|---|
?. |
Güvenli özellik erişimi |
?? |
Varsayılan değer |
null |
Bilinçli boş değer |
undefined |
Atanmamış değişken |