CodeBlanks Logo Icon CodeBlanks

Özet - Type assertion

Assertion ile bir API yanıtını güvenli şekilde çözümleyen bir program yazarsın.

Özet - Type assertion

Bu grupta tür onaylama yöntemlerini öğrendin. as anahtar kelimesi ve <tür> açı parantezi derleme zamanında tür bildirir; ikisi de runtime'da değeri değiştirmez. unknown değerleri önce typeof ile daraltılır. Gerçek dönüşüm için Number() gibi fonksiyonlar kullanılır.

const yanit: unknown = "5";
if (typeof yanit === "string") {
  const n = Number(yanit);
  console.log(n + 1);
}

Uygulama API yanıtını çözümle

yanit değişkeni unknown türünde ve değeri "42". Önce typeof ile string mi kontrol et. Eğer stringse Number() ile gerçek dönüşüm yap, 1 ekle ve sonucu console.log ile yazdır.

Başlangıç kodu

index.ts
// yanit degiskeninin string olup olmadigini typeof ile kontrol et
// eger stringse Number ile donustur, 1 ekle ve yazdir

const yanit: unknown = "42";

Örnek çözüm

index.ts
const yanit: unknown = "42";
if (typeof yanit === "string") {
  const n = Number(yanit);
  console.log(n + 1);
}

Beklenen çıktı

43

Soru ve cevaplar

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

1 Bir API yanıtını unknown olarak alıp güvenli işlemek için en iyi sıra nedir?

  • unknown olarak al, as ile zorla cast et
  • unknown olarak al, doğrudan metot çağır
  • any olarak al, hiç kontrol yapma
  • unknown olarak al, typeof ile daralt, sonra kullan Doğru cevap

Açıklama: En güvenli yol: unknown olarak al, typeof ile daralt, sonra kullan. Doğrudan kullanım veya zorla cast hatalara açıktır.

2 unknown'ı string ile daralt

Soru
const yanit: unknown = "basarili";
if (typeof yanit === "____") {
  console.log(yanit.length);
}
Cevap
const yanit: unknown = "basarili";
if (typeof yanit === "string") {
  console.log(yanit.length);
}

Açıklama: Bir unknown string değerini daraltmak için typeof ile "string" karşılaştırması yapılır.

3 Type assertion özeti

Kavram Anlamı
as Evrensel onaylama
<> Açı parantez sözdizimi
unknown Güvenli any alternatifi
typeof Daraltma operatörü

Orta seviye bölümündeki tüm dersler