Recursive generic types
- TypeScript kursu
- İleri seviye
- Ders 3/57
- 4 dk
Kendini çağıran generic türleri öğrenirsin.
Recursive generic type nedir?
Bir recursive (özyinelemeli) generic type, tanımında kendine başvuran türdür. Örneğin ağaç yapısı türleri böyle tanımlanır. type Agac<T> = { deger: T; sol?: Agac<T>; sag?: Agac<T> } ifadesi, kendi içinde aynı türü tekrar referans alır.
type Agac<T> = {
deger: T;
sol?: Agac<T>;
sag?: Agac<T>;
};Recursive type ile derin erişim
Recursive generic type, derin iç içe veriye tür güvenli erişim sağlar. Her düğüm hem kendi değerini hem de aynı türden alt düğümleri taşır. sol ve sag alanları opsiyoneldir; böylece yaprak düğümlerde alt dal olmayabilir.
const yaprak: Agac<number> = { deger: 5 };
const dal: Agac<number> = {
deger: 3,
sol: { deger: 1 }
};Uygulama Agac nesnesi oluştur
Agac adında bir recursive generic type tanımla: <T> = { deger: T; sol?: Agac<T>; sag?: Agac<T> }. kok değişkeni Agac<number> türünde olsun ve değeri { deger: 1, sol: { deger: 2 } } olsun. kok.sol.deger değerini console.log ile yazdır.
Başlangıç kodu
// Agac adinda recursive generic type tanimla
// deger, opsiyonel sol ve sag alanlari olsun
// kok nesnesi number parametreyle olsun
// kok.sol.deger yazdirÖrnek çözüm
type Agac<T> = {
deger: T;
sol?: Agac<T>;
sag?: Agac<T>;
};
const kok: Agac<number> = { deger: 1, sol: { deger: 2 } };
console.log(kok.sol.deger);Beklenen çıktı
2
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir recursive generic type aşağıdakilerden hangisinde tipik olarak kullanılır?
- Tek değerli sayılar için
- Yalnızca stringler için
- Ağaç veya liste gibi kendini tekrar eden yapılar için Doğru cevap
- Sabit uzunluklu diziler için
Açıklama: Recursive generic type, ağaç ve bağlı liste gibi kendini tekrar eden iç içe yapıları tanımlamak için kullanılır.
2 Recursive generic parametre
type Agac<T> = {
deger: T;
sol?: ____<T>;
sag?: Agac<T>;
};
type Agac<T> = {
deger: T;
sol?: Agac<T>;
sag?: Agac<T>;
};
Açıklama: Recursive type kendine başvurur; sol ve sag alanları yine Agac<T> türünden olmalıdır.
3 Recursive generic kavramları
| Kavram | Anlamı |
|---|---|
Agac<T> |
Kendine başvuran tür |
deger |
Düğüm değeri |
sol? |
Opsiyonel sol alt ağaç |
sag? |
Opsiyonel sağ alt ağaç |