0Pricing
TypeScript Academy · Ders

instanceof ve in ile Daraltma

Sınıf örneklerini ve nesne yapılarını daraltın

instanceof ve in ile Daraltma, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 2. 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

`instanceof`, sınıf örneklerini; `in` ise özellik varlığına göre nesne türlerini daraltır. Her ikisi de karmaşık birleşimlerle çalışmak için gereklidir.

instanceof Daraltması

Bir değerin bir sınıfın örneği olup olmadığını denetlemek için `instanceof` kullanınız. TypeScript, türü o sınıfa daraltır.
function handle(err: Error | string) {
  if (err instanceof Error) {
    console.log(err.message); // err: Error
  } else {
    console.log(err); // err: string
  }
}

instanceof ile Özel Sınıflar

instanceof, kendi sınıflarınızla da çalışır.
class Dog { bark() { return 'Woof'; } }
class Cat { meow() { return 'Meow'; } }
function speak(pet: Dog | Cat) {
  if (pet instanceof Dog) pet.bark();
  else pet.meow();
}

instanceof Arayüzlerle Çalışmaz

Arayüzler çalışma zamanında silinir. instanceof'i bir arayüzle kullanamazsınız; yalnızca sınıflarla kullanabilirsiniz.

in İşleci

Bir nesnede bir özelliğin var olup olmadığını denetlemek için `in` kullanınız. TypeScript, birleşimi bu özelliğe sahip üyelere daraltır.
type Fish = { swim(): void };
type Bird = { fly(): void };
function move(animal: Fish | Bird) {
  if ('swim' in animal) animal.swim();
  else animal.fly();
}

İsteğe Bağlı Özelliklerle in Daraltması

`in`, isteğe bağlı özellikler için de daraltma yapar; birleşimi, özelliğin bulunabileceği üyelere daraltır.
type A = { x?: number };
type B = { y: number };
function process(v: A | B) {
  if ('x' in v) {
    // v: A (has optional x)
  }
}

instanceof ve in Birlikte Kullanımı

Karmaşık tür ayrımı için her iki daraltma tekniğini birleştirebilirsiniz.
function describe(v: Error | { message: string }) {
  if (v instanceof Error) console.log('Error:', v.stack);
  else if ('message' in v) console.log('Object:', v.message);
}

Ayırt Edicili Birleşimler İçin in

Birleşim üyelerinde ayırt edici bulunmadığında, `in` denetimleri aynı daraltma amacına hizmet edebilir.
type Square = { side: number };
type Circle = { radius: number };
function area(s: Square | Circle): number {
  return 'side' in s ? s.side ** 2 : Math.PI * s.radius ** 2;
}

catch Bloklarında instanceof

Hata türlerini birbirinden ayırmak için catch bloklarında instanceof kullanınız.
try {
  await fetchData();
} catch (err) {
  if (err instanceof NetworkError) { /* retry */ }
  else if (err instanceof AuthError) { /* redirect */ }
  else throw err;
}

Object.prototype Denetimi ve in

Hem `key in obj` hem de `Object.prototype.hasOwnProperty.call(obj, key)`, özellik varlığını denetler; ancak `in`, devralınan özelliklerle de eşleşir.

Daraltma Önceliği

Birden fazla daraltma denetimi uygulandığında TypeScript, daraltılmış türlerin kesişimini alarak mümkün olan en özel türü verir.

Hızlı Kontrol

TypeScript'te bir arayüz türünü daraltmak için neden `instanceof` kullanamazsınız?

Özet

`instanceof`, sınıf örneklerini çalışma zamanında daraltır. `in`, nesne birleşimlerini özellik varlığına göre daraltır. Sınıf hiyerarşileri ve yapısal nesne birleşimleriyle çalışırken ikisini de kullanınız.

Sıkça Sorulan Sorular

“instanceof ve in ile Daraltma” dersi ücretsiz mi?

Evet — “instanceof ve in ile Daraltma” 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.

“instanceof ve in ile Daraltma” dersinde ne öğreneceğim?

Sınıf örneklerini ve nesne yapılarını daraltın 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 2. dersidir.

“instanceof ve in ile Daraltma” 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. typeof ve Doğruluk Daraltması
  2. instanceof ve in ile Daraltma
  3. Kullanıcı Tanımlı Tür Koruma Fonksiyonları
  4. never ile Tüm Durumları Denetleme
← TypeScript Academy Sayfasına Dön