CodeBlanks Logo Icon CodeBlanks

Default tür parametresi

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 = number

Default 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

index.ts
// 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

index.ts
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&lt;T = string&gt;(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

Soru
function ilk<T = ____>(dizi: T[]): T {
  return dizi[0];
}
const s = ilk();  // T varsayılan
Cevap
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

Orta seviye bölümündeki tüm dersler