Türleri kodun sözleşmesi olarak kullanın
TypeScript, JavaScript kodunu çalıştırmadan önce denetler ve beklenmeyen tür kullanımlarını görünür hâle getirir. Fonksiyonların hangi girdileri beklediği ve ne döndürdüğü açık olduğunda, kodu okuyan kişi de değişiklik yapan ekip arkadaşı da daha sağlam bir başlangıç noktası bulur.
Değişkenlerin çoğunda türü tekrar yazmak gerekmez; TypeScript değeri bağlamından çıkarabilir. Tür tanımlarını özellikle fonksiyon sınırlarında, API modellerinde ve birden fazla yerde kullanılan veri yapılarında belirginleştirmek daha yararlıdır.
Belirsizliği modelleyin
Gerçek uygulamalarda veri her zaman tek biçimde gelmez. Bir alan bulunmayabilir, işlem başarısız olabilir ya da durum birkaç olasılıktan birinde olabilir. Bu durumları türlerde açıkça temsil etmek, her ekranda ayrı ayrı varsayım yapmaktan daha güvenlidir.
Dış kaynaktan gelen veriyi başlangıçta bilinmiyor kabul edin. TypeScript türleri derleme sırasında silindiğinden, bir API yanıtını yalnızca tür tanımıyla çalışma zamanında doğrulamış olmazsınız. Gerekli alanları uygulamanın sınırında kontrol edin.
any kullanımını bilinçli sınırlayın
any, tür denetimini o noktada devre dışı bırakır. Geçiş sürecinde veya dış bir kütüphaneyle çalışırken gerekebilir; ancak yaygın kullanımı hataları yeniden görünmez kılar. Veri hakkında henüz yeterli bilgi yoksa unknown kullanıp, kullanmadan önce türünü daraltmak daha güvenli bir yaklaşımdır.
Öte yandan her değere karmaşık bir tür yazmak da kodu gereksiz yere zorlaştırabilir. Tür sistemi, gerçek veri yapısını ve iş kurallarını açıklamalı; yalnızca derleyiciyi susturmaya yönelik bir katmana dönüşmemelidir.
Tür değişikliklerini testlerle destekleyin
Tür denetimi, kodun belirlenen şekillerle tutarlı olup olmadığını kontrol eder. Kullanıcı akışının doğru çalıştığını, API'nin beklenen yanıtı verdiğini veya bir formun doğru mesaj gösterdiğini tek başına kanıtlamaz. Bu nedenle derleme ve tür kontrollerini birim, entegrasyon ya da uçtan uca testlerle tamamlayın.
İyi tanımlanmış türler, testlerin yerine geçmez; test edilecek davranışın sınırlarını daha anlaşılır hâle getirir.