CodeBlanks Logo Icon CodeBlanks

strictNullChecks

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

index.ts
// 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

index.ts
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ü

Soru
function getName(): string ____ { return null; }
Cevap
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)

Başlangıç bölümündeki tüm dersler