Default tür parametresi
- TypeScript kursu
- Orta seviye
- Ders 22/89
- 4 dk
Tür parametresine varsayılan değer vermeyi öğrenirsin.
Default tür parametresi
Tür parametresine = ile varsayılan tür verebilirsin: <T = string>. Çağrıda tür argümanı vermezsen T varsayılan olur; verirsen verilen tür kullanılır. Bu, çoğu durumda yaygın bir tür isteyip nadiren farklı tür isteyen yardımcılarda işe yarar.
function depola<T = string>(x: T): T[] {
return [x];
}
depola("metin"); // T = string
depola<number>(5); // T = numberDefault ve kısıt birlikte
Default tür, kısıtla birlikte de kullanılabilir: <T extends Uzunluklu = string[]>. Burada T en az Uzunluklu olmalı ve varsayılanı string[]'dir. Kısıt, varsayılan türün de sağlaması gereken bir koşuldur; yoksa derleme hatası verir.
Uygulama Varsayılan türle tekli dizi
sarma<T = string>(x: T): T[] generic fonksiyonunu yaz; gövdesi return [x]; olsun. sarma("merhaba") çağrısının sonucunu console.log ile yazdır.
Başlangıç kodu
// sarma fonksiyonunu generic olarak yaz
// T tür parametresine string varsayılan değer ver
// x parametresi T, dönüş T[] olsun
// gövde tek elemanlı dizi döndürsün
// "merhaba" metnini sar ve sonucu console.log ile yazdırÖrnek çözüm
function sarma<T = string>(x: T): T[] {
return [x];
}
console.log(sarma("merhaba"));Beklenen çıktı
[ 'merhaba' ]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>depola<T = string>(x: T)</code> bildirisinde <code>depola("merhaba")</code> çağrısı T'yi ne yapar?
- Derleme hatası verir
- T undefined olur
- T any olur
- T string olur (hem varsayılan hem çıkarım) Doğru cevap
Açıklama: Tür argümanı verilmediğinden varsayılan string kullanılır; ayrıca "merhaba" bir string olduğundan çıkarım da string verir. İkisi uyumludur.
2 Varsayılan tür ver
function ilk<T = ____>(dizi: T[]): T {
return dizi[0];
}
const s = ilk(); // T varsayılan
function ilk<T = string>(dizi: T[]): T {
return dizi[0];
}
const s = ilk(); // T varsayılan
Açıklama: Çağrıda argüman olmadığından varsayılan tür devreye girer; örnek string dizisi beklediğinden string yazılır. number veya boolean çağrıyı bozar; T ise tanımsızdır.
3 Default tür parametresi parçaları
| Kavram | Anlamı |
|---|---|
<T = string> |
Varsayılan tür bildirimi |
depola("metin") |
Varsayılan devreye girer |
depola<number>(5) |
Verilen tür geçersiz kılar |
<T extends Uzunluklu = string[]> |
Kısıt ve default birlikte |