function identity<T>(x: T): T { return x; } yazmanın function identity(x: any): any { return x; }'e göre temel faydası nedir?- aGeneric sürüm çalışma zamanında daha hızlı çalışır
- bGeneric sürüm, girdinin spesifik tipini return değerinde korur✓
- cGeneric sürüm,
anyile tamamen aynı şekilde her tipin kısıtlamasız geçmesine izin verir - dGeneric sürüm sadece class metotları için gerekli, düz fonksiyonlar için değil
Açıklama:
any ile fonksiyonun return tipi her zaman any'dir — TypeScript neyin geçildiğini takip etmeyi kaybeder, bu yüzden identity(5) + 1 ve identity(5).toUpperCase() ikisi de hatasız type-check eder. T ile derleyici gerçekte geçilen argümanın tipini yakalar ve aynı tipi döndürür, yani identity(5) çağrısı number döner, derleyicinin identity(5).toUpperCase()'ı hata olarak yakalamasını sağlar.