Özet - Type assertion
- TypeScript kursu
- Orta seviye
- Ders 70/89
- 4 dk
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
// 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
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
const yanit: unknown = "basarili";
if (typeof yanit === "____") {
console.log(yanit.length);
}
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ü |