unknown türü
- TypeScript kursu
- Başlangıç
- Ders 26/89
- 4 dk
unknown ile güvenli tür denetimini öğrenirsin.
unknown türü
unknown türü, any gibi her değeri kabul eder ama kullanmadan önce türünü kontrol etmeni şart koşar. Bu, tür güvenliğini koruyarak esneklik sağlar. Tür kontrolü yapmadan unknown değerine erişemezsin.
let x: unknown = "merhaba";
if (typeof x === "string") {
console.log(x.toUpperCase()); // "MERHABA"
}unknown, güvenli alternatif olarak any'nin yerine kullanılır.
Tür koruyucu (type guard)
Bir unknown değerini kullanmak için, tür koruyucu ile türünü daraltırsın. En yaygın tür koruyucu, typeof operatörüdür. Tür daraltıldıktan sonra, o türe özgü işlemleri güvenle yapabilirsin.
let deger: unknown = 42;
if (typeof deger === "number") {
console.log(deger * 2); // 84
}Tür koruyucu, unknown'u belirli bir türe dönüştürür ve güvenli erişim sağlar.
Uygulama unknown ile tür koruyucu
girdi adında, türü unknown olan bir değişken tanımla ve değerini "merhaba" yap. typeof ile dize olup olmadığını kontrol et; dize ise toUpperCase ile büyük harfe çevirip console.log ile yazdır.
Başlangıç kodu
// girdi adında bir unknown değişkeni tanımla
// değeri "merhaba" olsun
// typeof ile string kontrolü yap
// string ise büyük harfe çevirip yazdırÖrnek çözüm
let girdi: unknown = "merhaba";
if (typeof girdi === "string") {
console.log(girdi.toUpperCase());
}Beklenen çıktı
MERHABA
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>unknown</code> ile <code>any</code> arasındaki temel fark nedir?
- unknown, any'den daha hızlı çalışır
- unknown, hiçbir değer atamasına izin vermez
- unknown, kullanmadan önce tür kontrolü gerektirir Doğru cevap
- unknown ile any arasında fark yoktur
Açıklama: <code>unknown</code> her değeri kabul eder ama kullanmadan önce tür kontrolü (type guard) şarttır; <code>any</code>'de kontrol yoktur ve bu yüzden güvensizdir.
2 Tür koruyucu ekle
let deger: unknown = "merhaba";
if (typeof deger === ____) { console.log(deger.toUpperCase()); }
let deger: unknown = "merhaba";
if (typeof deger === "string") { console.log(deger.toUpperCase()); }
Açıklama: Değişkenin değeri dize olduğundan, <code>toUpperCase</code> metodunu kullanabilmek için <code>typeof</code> kontrolü <code>"string"</code> ile yapılmalıdır.
3 unknown kavramları
| Kavram | Anlamı |
|---|---|
unknown |
Kullanım öncesi tür kontrolü şart |
typeof x === "string" |
Tür koruyucu |
unknown vs any |
unknown daha güvenli |
Tür koruyucu |
Türü daraltma işlemi |