0Pricing
TypeScript Academy · Ders

Genel Kısıtlamalar: Tür Parametrelerini Daraltma

Genel türlerde yapı gereksinimlerini zorunlu kılmak için extends kullanın

Genel Kısıtlamalar: Tür Parametrelerini 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

Gelişmiş genel tür kısıtlamaları, tür bağımsız değişkeni olarak kullanılabilecek türleri daraltır ve karmaşık biçimler üzerinde tür güvenli işlemler yapılmasını sağlar.

Kısıtlamaların Özeti

T extends U, T'yi U'nun alt türleri olan türlerle sınırlar. Bu, işlev içinde TypeScript'in T'nin biçimi hakkında bilgi sahibi olmasını sağlar.
function len<T extends { length: number }>(val: T): number {
  return val.length;
}

Belirli Yöntemlerle Sınırlama

T'yi, söz konusu yöntemi içeren bir arabirimle sınırlayarak belirli bir yönteme sahip olmasını zorunlu kılın.
interface Stringable { toString(): string; }
function stringify<T extends Stringable>(val: T): string {
  return val.toString();
}

Kısıtlamadan Tür Çıkarımı

Güvenli erişiciler oluşturmak için kısıtlama içinde keyof kullanın.
function pluck<T, K extends keyof T>(items: T[], key: K): T[K][] {
  return items.map(item => item[key]);
}
const names = pluck(users, 'name'); // string[]

Üst Düzey Tür Kısıtlamaları (Benzetimli)

TypeScript gerçek üst düzey türleri desteklemez, ancak bunları koşullu türler ve kısıtlamalarla benzetebilirsiniz.

İlkel Türlerle Sınırlama

Uzmanlaşmış işlevler için tür parametrelerini belirli ilkel türlerle sınırlayın.
type Primitive = string | number | boolean | bigint | symbol | null | undefined;
function isPrimitive<T extends Primitive>(val: T): true { return true; }

Özyinelemeli Kısıtlamalar

Kısıtlamalar, özyinelemeli örüntüler için kendilerine başvurabilir.
interface Comparable<T> { compareTo(other: T): number; }
function sort<T extends Comparable<T>>(items: T[]): T[] {
  return [...items].sort((a, b) => a.compareTo(b));
}

Varsayılan Değerli Kısıtlama

Bir tür parametresinin hem kısıtlaması hem de varsayılanı olabilir. Varsayılan değer kısıtlamayı karşılamalıdır.
function process<T extends object = Record<string, unknown>>(data: T): void {
  console.log(Object.keys(data));
}

T extends Record<string, unknown>

Dinamik özellik erişimini etkinleştirmek için bir kayıt türüyle sınırlayın.
function getValue<T extends Record<string, unknown>>(obj: T, key: string): unknown {
  return obj[key];
}

Dönüş Türlerinde Kısıtlama Çıkarımı

T kısıtlandığında TypeScript, dönüş türü üzerindeki geçerli işlemleri belirlemek için kısıtlamayı kullanır.
function firstKey<T extends object>(obj: T): keyof T {
  return Object.keys(obj)[0] as keyof T;
}

NoInfer Yardımcı Programı (TS 5.4)

TypeScript 5.4, bir tür parametresinin belirli bir bağımsız değişken konumundan çıkarılmasını önlemek için NoInfer özelliğini kullanıma sundu.
function createState<T>(initial: T, fallback: NoInfer<T>): T {
  return initial ?? fallback;
}

Hızlı Kontrol

`T extends { length: number }` ifadesi, genel bir işlevin içinde T'ye ne ekler?

Özet

Gelişmiş kısıtlamalar, genel türleri belirli biçimlere, yöntemlere veya ilkel tür birleşimlerine daraltır. Güçlü tür güvenli yardımcı programlar oluşturmak için bunları keyof, özyinelemeli örüntüler ve varsayılanlarla birleştirin.

Sıkça Sorulan Sorular

“Genel Kısıtlamalar: Tür Parametrelerini Daraltma” dersi ücretsiz mi?

Evet — “Genel Kısıtlamalar: Tür Parametrelerini 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.

“Genel Kısıtlamalar: Tür Parametrelerini Daraltma” dersinde ne öğreneceğim?

Genel türlerde yapı gereksinimlerini zorunlu kılmak için extends kullanı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.

“Genel Kısıtlamalar: Tür Parametrelerini 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. keyof ve Dizine Göre Erişim Türleri
  2. Genel Kısıtlamalar: Tür Parametrelerini Daraltma
  3. Koşullu Türler: T extends U ? X : Y
  4. Dağıtıcı Koşullu Türler
← TypeScript Academy Sayfasına Dön