TypeScript'te geri çağırma fonksiyonlarının tiplerini net bir şekilde tanımlamak önerilir. Parametrelerin ve dönen değerlerin tiplerini belirlemek, hataları önlemeye yardımcı olur:
type Callback = (event: string, id: number) => boolean; function useCallback(cb: Callback) { // ... }
void (hiçbir değer döndürmüyor) dönebilir ise, bu belirtilmelidir: () => void.TypeScript otomatik olarak çıkarmalar yapabilecekken, geri çağırma fonksiyonunun parametreleri ve dönüş değerlerinin tiplerini belirtmek zorunlu mudur?
Cevap: Zorunlu değildir, TypeScript callback argümanlarının tiplerini çıkarabilir, ancak kamu API'leri ve karmaşık bileşen fonksiyonları için tüm türlerin açık bir şekilde belirtilmesi oldukça arzu edilir. Bu, desteği kolaylaştırır ve fonksiyon sözleşmeleri değiştiğinde istenmeyen hataları önler.
Hikaye
Projede, geri çağırmanın dönen değeri açıkça tiplenmeden kullanılıyordu ve geliştiricilerden biri, beklenen boolean yerine bir string döndürmeye başladı. Bu, varsayılan any nedeniyle derleme aşamasında hata vermedi, ancak fonksiyonun işleyiş mantığı bozuldu ve üretimde bir hata meydana geldi.
Hikaye
Büyük bir React projesinde, event callback'lerinin parametrelerinin açıkça tiplenmesi unutuldu. Yeni React sürümüne geçişte olay tipleri değişti ve kod hata ile derlenmeye başladı. Tüm sayfalardaki geri çağırma fonksiyonu acilen düzeltilmek zorunda kalındı.
Hikaye
Node.js uygulamasında, asenkron fonksiyonla çalışan callback tipi belirtilmemişti: alınan değer, string olarak yanlış yorumlandı, oysa bir error nesnesiydi. Tiplerin uyuşmaması, hataların düzgün bir şekilde işlenmesini engelledi.