0Pricing
TypeScript Academy · Ders

Bağlamsal Türlendirme: Bağlamdan Çıkarım

TypeScript'in çevredeki bağlamdan türleri nasıl çıkardığını anlayın

Bağlamsal Türlendirme: Bağlamdan Çıkarım, 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.

Bağlamsal Tür Belirleme Nedir?

Bağlamsal tür belirleme, TypeScript'in bir ifadenin türünü bulunduğu konuma göre çıkarsaması durumudur — türü ifadenin kendisi değil, bağlam sağlar.

document.addEventListener("click", (e) => {
  // e is inferred as MouseEvent from the event type
  console.log(e.clientX);
});

Geri Çağırmalarda Bağlamsal Tür Belirleme

Tür belirtilmiş bir işleve geri çağırma işlevi verdiğinizde TypeScript, parametre türlerini beklenen geri çağırma imzasından çıkarır.

const nums = [1, 2, 3];
nums.forEach((n) => {
  // n inferred as number from Array<number>
  console.log(n.toFixed(2));
});

Nesne Değişmezlerinde Bağlamsal Tür Belirleme

Bir nesne değişmezi tür belirtilmiş bir değişkene atandığında özellik türleri bu türden çıkarılır ve kesin denetimler yapılabilir.

interface Config { timeout: number; retries: number; }
const config: Config = {
  timeout: 3000,
  retries: 3,
  // extra: true // Error: excess property
};

JSX'te Bağlamsal Tür Belirleme

React'te olay işleyicisi özellikleri bağlamsal olarak türlendirilir; böylece olay parametrelerinin türleri otomatik olarak çıkarılır.

function Button({ onClick }: { onClick: (e: React.MouseEvent) => void }) {
  return <button onClick={onClick}>Click</button>;
}
// Caller: e is inferred as React.MouseEvent
<Button onClick={(e) => console.log(e.currentTarget)} />

Bağlamsal Tür Belirleme ve Açık Tür Belirtimleri

Bağlamsal tür belirleme güçlüdür ancak açık tür belirtimleriyle geçersiz kılınabilir. İkisi de mevcut olduğunda açık belirtim bağlamsal belirtime üstün gelir.

const handler: (x: string) => void = (x: number) => {}; // Error
// Explicit annotation (number) conflicts with contextual (string)

Yapı Çözmeyle Bağlamsal Tür Belirleme

Bağlamsal olarak tür belirtilmiş işlevlerdeki yapı çözülmüş parametreler de türlerini bağlamdan alır.

const pairs: [string, number][] = [["a", 1]];
pairs.forEach(([key, value]) => {
  // key: string, value: number — contextually typed
  console.log(key.toUpperCase(), value * 2);
});

Bağlamsal Tür Belirleme ve Dönüş Türleri

Bir işlev tür belirtilmiş bir değişkene atandığında dönüş türü de bağlamsal olarak çıkarılır.

type Transform = (x: number) => string;
const double: Transform = (x) => x * 2; // Error: number not string
const str: Transform = (x) => String(x * 2); // OK

Koşullu İfadelerde Bağlamsal Tür Belirleme

TypeScript, bağlamsal türleri üçlü ifadelere ve mantıksal işleçlere aktarabilir.

const result: string | null =
  Math.random() > 0.5 ? "yes" : null; // both arms typed by context

Bağlamsal Tür Belirlemenin Sınırları

İfade, tür belirtimi olmayan bağımsız bir değişken gibi bağlamsal olmayan bir konumdaysa bağlamsal tür belirleme uygulanmaz.

const fn = (x) => x + 1; // x: any — no context to infer from
// Add annotation: const fn = (x: number) => x + 1;

Çift Yönlü Çıkarım

TypeScript, çift yönlü tür çıkarımı yapar: hem yukarıdan aşağıya (bağlamsal) hem de aşağıdan yukarıya (ifadeden). Bu iki yaklaşım birlikte çalışarak en doğru türü sağlar.

function apply<T>(fn: (x: T) => T, val: T): T { return fn(val); }
apply((x) => x.toUpperCase(), "hello"); // x inferred as string

Özet: Bağlamsal Tür Belirleme

Bağlamsal tür belirleme, TypeScript'in türleri bir ifadenin kullanıldığı konumdan çıkarmasını sağlar — geri çağırmalar, atamalar, JSX özellikleri ve yapı çözme işlemleri bu çıkarım mekanizmasından yararlanır.

Hızlı Kontrol

Bağlamsal tür belirleme bir geri çağırma parametresine ne zaman uygulanır?

Öğrendikleriniz

Bağlamsal tür belirleme, türlerin değerden çok konuma göre çıkarılmasıdır. Geri çağırmaları, olay işleyicilerini ve tür belirtilmiş atamaları tür güvenliğini koruyarak daha kısa hâle getirir.

Sıkça Sorulan Sorular

“Bağlamsal Türlendirme: Bağlamdan Çıkarım” dersi ücretsiz mi?

Evet — “Bağlamsal Türlendirme: Bağlamdan Çıkarım” 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.

“Bağlamsal Türlendirme: Bağlamdan Çıkarım” dersinde ne öğreneceğim?

TypeScript'in çevredeki bağlamdan türleri nasıl çıkardığını anlayı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.

“Bağlamsal Türlendirme: Bağlamdan Çıkarım” 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. Tür Genişletme ve Daraltma Mekanizmaları
  2. Bağlamsal Türlendirme: Bağlamdan Çıkarım
  3. Tazelik ve Fazladan Özellik Denetimi
  4. const Doğrulamaları ve as const
← TypeScript Academy Sayfasına Dön