strictNullChecks
- TypeScript kursu
- Başlangıç
- Ders 68/89
- 4 dk
null güvenliğini zorlayan seçeneği öğrenirsin.
strictNullChecks nedir?
strictNullChecks açıkken null ve undefined diğer türlerden ayrı olur. Bir string değişkenine null atayamazsın; null alabilmesi için string | null yazman gerekir. Bu, çalışma anı null okuma hatalarını önler.
let t: string | null = null;
if (t !== null) {
console.log(t.length); // güvenli erişim
}strictNullChecks kapalıyken
strictNullChecks kapalıyken null ve undefined herhangi bir türe atanabilir. Bu esneklik tehlikelidir; çünkü bir değişkenin null olup olmadığını kontrol etmeden özelliğine erişirsen uygulama çökebilir.
let s: string = null; // kapalıyken geçerli
console.log(s.length); // çalışma anı hatasıAçıkken bu satır derleme anında hata verir ve hatayı önceden görürsün.
Uygulama Null güvenli ilk eleman
firstOrNull(arr: string[]): string | null fonksiyonunu yaz. Dizi boşsa null döndür; değilse ilk elemanı döndür. İki çağrının sonucunu da yazdır.
Başlangıç kodu
// firstOrNull(arr: string[]): string | null döndürür
// dizi boş ise null döndür
// değilse ilk elemanı döndür
// iki çağrıyı da yazdırÖrnek çözüm
function firstOrNull(arr: string[]): string | null {
if (arr.length === 0) {
return null;
}
return arr[0];
}
console.log(firstOrNull(["a", "b"]));
console.log(firstOrNull([]));Beklenen çıktı
a null
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 strictNullChecks açıkken hangi atama geçerlidir?
- let s: string = null;
- let s: string; s = null;
- let s: string = undefined;
- let s: string | null = null; Doğru cevap
Açıklama: strictNullChecks açıkken string bir değişkene null veya undefined atayamazsın. Açıkça string | null yazarsan null ataması geçerli olur.
2 Null alabilen return türü
function getName(): string ____ { return null; }
function getName(): string | null { return null; }
Açıklama: strictNullChecks açıkken string return türüne null atanamaz. string | null yazarsan fonksiyon null döndürebilir.
3 strictNullChecks parçaları
| Kavram | Anlamı |
|---|---|
strictNullChecks |
null ve undefined'i ayrı tür yapar |
string | null |
null alabilen string |
string |
strict altında null alamaz |
t !== null |
Tür daraltma (narrowing) |