0Pricing
TypeScript Academy · Ders

extends ile Genel Kısıtlamaları

Tür parametrelerini belirli yapılara kısıtlayın

extends ile Genel Kısıtlamaları, 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

Genel tür kısıtlamaları, tür bağımsız değişkeni olarak geçirilebilecek türleri daraltır. T'nin belirli özelliklere sahip olmasını veya belirli bir şekle uymasını gerektirmek için `extends` kullanın.

Kısıtlamalar Olmadığında Yaşanan Sorun

Kısıtlamalar olmadığında TypeScript, T üzerinde hangi işlemlerin geçerli olduğunu bilmez; bu nedenle yalnızca tüm türlerde ortak olan işlemlere izin verir.
function getLength<T>(val: T): number {
  // return val.length; // Error — T might not have .length
}

Kısıtlama Ekleme

T'nin en az Shape özelliklerine sahip olmasını gerektirmek için `T extends Shape` kullanın.
function getLength<T extends { length: number }>(val: T): number {
  return val.length;
}
getLength('hello');  // OK — string has .length
getLength([1, 2]);   // OK — array has .length
// getLength(42);   // Error — number has no .length

Bir Arayüzle Sınırlama

T'yi belirli bir arayüzü gerçeklemekle sınırlayın.
interface Named { name: string; }
function greet<T extends Named>(person: T): string {
  return 'Hello, ' + person.name;
}

keyof Kısıtlaması

K'yi T'nin anahtarlarıyla sınırlamak için `K extends keyof T` kullanın. Bu, özelliklere güvenli erişim sağlar.
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
  return obj[key];
}
const age = getProperty({ name: 'Alice', age: 30 }, 'age'); // number

Bir Birleşimi Genişletme

T, tür bağımsız değişkenini belirli değerlerle sınırlayan bir birleşim türüyle kısıtlanabilir.
type Status = 'active' | 'inactive' | 'banned';
function setStatus<T extends Status>(status: T): void {
  console.log('Setting status:', status);
}

Bir Oluşturucuyla Sınırlama

İşlev içinde örnekler oluşturabilmek için T'yi bir sınıf olmaya, yani bir oluşturucuya sahip olmaya zorlayın.
function create<T>(ctor: new () => T): T {
  return new ctor();
}

Kesişimle Birden Çok Kısıtlama

T'nin birden çok arayüzü karşılamasını kesişim kullanarak zorunlu kılın.
interface Serializable { serialize(): string; }
interface Loggable { log(): void; }
function process<T extends Serializable & Loggable>(item: T): void {
  item.log();
  console.log(item.serialize());
}

Kısıtlama Kalıtımı

Kısıtlamalar kalıtımla çalışır. T bir temel sınıfı genişletiyorsa tüm temel sınıf yöntemlerini çağırabilirsiniz.
class Animal { breathe() { return 'breathing'; } }
function care<T extends Animal>(a: T): string { return a.breathe(); }

T Kendini Genişletir (Özyinelemeli)

Kısıtlamalar, özyinelemeli veri yapıları için kendilerine başvurabilir.
interface Comparable<T> { compareTo(other: T): number; }
function max<T extends Comparable<T>>(a: T, b: T): T {
  return a.compareTo(b) >= 0 ? a : b;
}

Kısıtlama Hata Mesajları

Bir tür bağımsız değişkeni kısıtlamayı karşılamadığında TypeScript, hem bağımsız değişkeni hem de kısıtlamayı adlandıran açık bir hata bildirir.

Hızlı Kontrol

`K extends keyof T`, K'yi neyle sınırlar?

Özet

Genel tür parametrelerini sınırlamak için `T extends SomeType` kullanın. Bu, T üzerinde belirli yöntemleri çağırmanıza, güvenli özellik erişimi için keyof kullanmanıza ve tür güvenli yardımcı araçlar oluşturmanıza olanak tanır.

Sıkça Sorulan Sorular

“extends ile Genel Kısıtlamaları” dersi ücretsiz mi?

Evet — “extends ile Genel Kısıtlamaları” 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.

“extends ile Genel Kısıtlamaları” dersinde ne öğreneceğim?

Tür parametrelerini belirli yapılara kısıtlayı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 3. dersidir.

“extends ile Genel Kısıtlamaları” 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. Genel Fonksiyonlar: Tür Parametreleri
  2. Genel Arayüzler ve Tür Takma Adları
  3. extends ile Genel Kısıtlamaları
  4. Varsayılan Tür Parametreleri
← TypeScript Academy Sayfasına Dön