Nullish coalescing
- TypeScript kursu
- Başlangıç
- Ders 65/89
- 4 dk
?? operatörüyle varsayılan değer öğrenirsin.
Nullish coalescing nedir?
Nullish coalescing (??), sol taraf null veya undefined ise sağ tarafı döndürür; değilse sol tarafı korur. Varsayılan değer vermenin güvenli yoludur.
const userName: string | null = null;
const display = userName ?? "misafir";
console.log(display); // misafir0, false veya boş string gibi değerler korunur.
?? ile || farkı
Mantıksal veya (||), tüm falsy değerleri yakalar: 0, "", false, null, undefined. Nullish coalescing (??) ise yalnızca null ve undefined için varsayılan verir. Bu yüzden 0 veya boş string gibi geçerli değerleri korumak gerektiğinde ?? tercih edilir.
const n: number | null = 0;
console.log(n || 5); // 5 (0 falsy)
console.log(n ?? 5); // 0 (yalnızca null/undefined)Uygulama Nullish coalescing ile isim göster
displayName(name: string | null | undefined): string fonksiyonunu yaz. name null veya undefined ise "Konuk" döndür; değilse name'i büyük harfe çevirip döndür. Üç çağrının sonucunu da yazdır.
Başlangıç kodu
// displayName fonksiyonunu yaz
// parametre name: string, null veya undefined olabilir
// name null veya undefined ise "Konuk" döndür
// değilse name'i büyük harfe çevir ve döndürÖrnek çözüm
function displayName(name: string | null | undefined): string {
return (name ?? "Konuk").toUpperCase();
}
console.log(displayName("ada"));
console.log(displayName(null));
console.log(displayName(undefined));Beklenen çıktı
ADA KONUK KONUK
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 n değeri 0 iken (n ?? 5) ifadesi ne döndürür?
const n: number | null = 0;
console.log(n ?? 5);- 5 döndürür
- 0 döndürür Doğru cevap
- undefined döndürür
- null döndürür
Açıklama: Nullish coalescing (??) yalnızca null veya undefined ise sağ tarafı alır. 0 falsy olsa da null/undefined olmadığı için sol taraf korunur.
2 Nullish coalescing işlecini tamamla
const display = userName ____ "misafir";
const display = userName ?? "misafir";
Açıklama: Nullish coalescing ??, userName null veya undefined ise sağ tarafı alır. || tüm falsy değerleri yakaladığı için 0 veya boş string gibi değerleri değiştirir; bu yüzden burada yanlıştır.
3 Nullish coalescing parçaları
| Kavram | Anlamı |
|---|---|
?? |
Yalnızca null/undefined için varsayılan |
|| |
Tüm falsy değerleri yakalar |
userName ?? "misafir" |
Varsayılan isim atar |
0 ?? 5 |
0 döndürür |