0Pricing
TypeScript Academy · Ders

unknown ve any: Daha Güvenli Seçim

unknown türünün kullanmadan önce türleri denetlemeye neden zorladığını öğrenin.

unknown ve any: Daha Güvenli Seçim, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 4 dersten oluşur.

Hoş Geldiniz

TypeScript 3.0, `any` türüne tür güvenli bir alternatif olarak `unknown` türünü tanıttı. Bu derste `unknown` türünü daha güvenli kılan özellikleri ve ne zaman kullanmanız gerektiğini öğreneceksiniz.

any Türünün Sorunu

`any` kullanıldığında TypeScript tüm denetimleri kapatır. Yöntemleri çağırabilir, özelliklere erişebilir ve türü belirlenmiş değişkenlere herhangi bir kısıtlama veya güvenlik olmadan atama yapabilirsiniz.
let val: any = getData();
val.someMethod(); // TypeScript: OK. Runtime: possible crash

unknown Türünü Tanıma

`unknown`, tür güvenli en üst türdür. `any` gibi her türlü değeri tutabilir. Ancak `any` türünün aksine, önce türü daraltmadan onu kullanamazsınız.
let val: unknown = getData();
// val.someMethod(); // Error: Object is of type 'unknown'

Kullanmadan Önce unknown Türünü Daraltma

Bir `unknown` değerini kullanmak için tür denetimiyle türünü daraltmanız gerekir. TypeScript daha sonra daraltılmış tür üzerindeki işlemlere izin verir.
let input: unknown = getInput();
if (typeof input === 'string') {
  console.log(input.toUpperCase()); // OK — narrowed to string
}

unknown Belirli Türlere Atanamaz

Bir denetim veya iddia olmadan `unknown` türünü belirli bir türe atayamazsınız. Bu, değeri kullanmadan önce doğrulamanızı zorunlu kılar.
let x: unknown = 'hello';
// let s: string = x; // Error
let s: string = x as string; // OK with assertion

catch Bloklarında unknown Kullanımı

TypeScript 4.0 ve sonraki sürümlerde yakalanan hatalar varsayılan olarak `unknown` türündedir. Bu, hata türünü denetlemenizi zorunlu kıldığı için eski `any` varsayılanından daha güvenlidir.
try {
  doSomething();
} catch (err: unknown) {
  if (err instanceof Error) {
    console.log(err.message); // safe
  }
}

Dış Veriler İçin unknown

JSON ayrıştırırken veya bir API'den veri alırken veriyi önce `unknown` olarak türlendirin ve kullanmadan önce doğrulayın.
const raw: unknown = JSON.parse(text);
if (
  typeof raw === 'object' &&
  raw !== null &&
  'name' in raw
) {
  console.log((raw as any).name);
}

unknown ile Tür Koruyucuları

Kullanıcı tanımlı tür koruyucuları `unknown` ile kusursuz çalışır ve kullanım öncesinde karmaşık yapıların doğrulanmasını sağlar.
function isUser(val: unknown): val is { name: string } {
  return typeof val === 'object' && val !== null && 'name' in val;
}

unknown ve never Karşılaştırması

`unknown` en üst türdür; her tür ona atanabilir. `never` en alt türdür; hiçbir tür ona atanamaz. Bu iki tür birbirinin karşıtıdır.
// unknown: anything can be assigned to it
let a: unknown = 42; // OK

// never: nothing can be assigned to it
function fail(): never { throw new Error(); }

any ve unknown Arasında Seçim Yapma

Türü belirlenmemiş veriler aldığınızda (JSON, kullanıcı girdisi, dış API'ler) `unknown` kullanın. `any` türünü yalnızca taşıma sırasında veya tür bilgisi olmayan kütüphanelerle çalışırken son çare olarak kullanın.

Çalışma Zamanı Doğrulama Kütüphaneleri

Zod, Valibot ve io-ts gibi kütüphaneler `unknown` ile kusursuz biçimde birlikte çalışır. Bu kütüphaneler ayrıştırma ve doğrulama yaparak `unknown` girdiden türü doğru belirlenmiş bir değer döndürür.
import { z } from 'zod';
const UserSchema = z.object({ name: z.string(), age: z.number() });
const user = UserSchema.parse(unknownData); // throws if invalid

Kısa Kontrol

TypeScript'te bir `unknown` değerini kullanabilmeden önce ne yapmanız gerekir?

Özet

`unknown`, `any` türünün güvenli alternatifidir. Her türlü değeri kabul eder ancak kullanmadan önce türü daraltmanızı zorunlu kılar. Dış veriler, catch blokları ve türün gerçekten bilinmediği her durum için kullanın.

Sıkça Sorulan Sorular

“unknown ve any: Daha Güvenli Seçim” dersi ücretsiz mi?

Evet — “unknown ve any: Daha Güvenli Seçim” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 4 dersten oluşur.

“unknown ve any: Daha Güvenli Seçim” dersinde ne öğreneceğim?

unknown türünün kullanmadan önce türleri denetlemeye neden zorladığını öğrenin. TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“unknown ve any: Daha Güvenli Seçim” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. İlkel Türler: string, number, boolean
  2. any Türü ve Neden Kaçınılması Gerektiği
  3. unknown ve any: Daha Güvenli Seçim
  4. null, undefined ve Katı null Denetimleri
← TypeScript Academy Sayfasına Dön