CodeBlanks Logo Icon CodeBlanks

Özet - Strict mode

Strict seçeneklerini açarak güvenli bir hesap programı yazarsın.

Özet - Strict mode ile güvenli hesap

Bir hesap programında strict: true açmak, null güvenliği ve katı fonksiyon türleri gibi birçok korumayı tek seferde sağlar. Hesap null olabilir; bunu Account | null ile ifade eder ve her işlemde null kontrolü yaparız.

interface Account { id: string; balance: number; }
function deposit(acc: Account | null, amount: number): Account {
  if (acc === null) {
    return { id: "yeni", balance: amount };
  }
  return { id: acc.id, balance: acc.balance + amount };
}

Uygulama Güvenli hesap programı

Account arayüzünü tanımla: id: string ve balance: number. deposit(acc: Account | null, amount: number): Account fonksiyonu yaz: acc null ise yeni hesap döndür (id: "yeni", balance: amount); değilse acc.balance + amount ile bakiyeyi güncelle. İki örneği yazdır.

Başlangıç kodu

index.ts
// Account arayüzünü tanımla: id ve balance
// deposit(acc: Account | null, amount: number): Account döndürür
// acc null ise yeni hesap: id "yeni", balance = amount
// değilse balance'a amount ekle
// iki örneği yazdır

Örnek çözüm

index.ts
interface Account {
  id: string;
  balance: number;
}

function deposit(acc: Account | null, amount: number): Account {
  if (acc === null) {
    return { id: "yeni", balance: amount };
  }
  return { id: acc.id, balance: acc.balance + amount };
}

console.log(deposit(null, 100).balance);
console.log(deposit({ id: "a1", balance: 50 }, 30).balance);

Beklenen çıktı

100
80

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Aşağıdaki strict seçeneklerinden hangisi null güvenliğini sağlar?

  • alwaysStrict
  • noImplicitAny
  • strictNullChecks Doğru cevap
  • strictFunctionTypes

Açıklama: strictNullChecks, null ve undefined'i diğer türlerden ayrı yapar ve böylece null güvenliğini sağlar.

2 Null alabilen hesap handler'ı

Soru
type AccountHandler = (acc: Account ____ ) => void;
Cevap
type AccountHandler = (acc: Account | null ) => void;

Açıklama: Hesap null olabileceği için handler parametresi Account | null olmalıdır. & kesişimdir, | undefined farklı bir değer türüdür, ? null ise geçersiz söz dizimidir.

3 Strict mode hesap parçaları

Kavram Anlamı
strict: true Tüm seçenekleri tek seferde açar
Account | null Null alabilen hesap türü
acc === null Null kontrolü ile daraltma
acc.balance + amount Bakiye güncelleme

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