TypeScript, JavaScript'in üzerinde bir katman olup, statik (katı) tip kontrolü sağlar. Bu, tip kontrolünün çalıştırma sırasında değil, derleme aşamasında gerçekleştiği anlamına gelir.
Temel farklar:
Büyük projelerdeki avantajlar:
Örnek:
type User = { name: string; age: number; } function greet(user: User): string { return 'Merhaba, ' + user.name; } const u: User = { name: 'Ivan', age: 30 }; greet(u); // Tamam
Soru: TypeScript projesinde any tipiyle bir değişken tanımlamak mümkün müdür ve bu proje katı tip kontrolünün avantajlarını kaybeder mi?
Cevap:
Evet, TypeScript any tipinin kullanılmasına izin verir; bu, değişken için tip kontrolünün yokluğuna eşdeğerdir. Eğer sık sık any kullanırsanız, bu TypeScript'in temel avantajı olan katı tip kontrolünü zayıflatır ve JavaScript'te olduğu gibi çalıştırma zamanı hatalarıyla karşılaşma riskini artırır.
Örnek:
let data: any = 'test'; data = 42; // Hata oluşmayacak, ama sorunlara yol açabilir
Hikaye
Geliştirici, karmaşık nesneler için hızlıca ilerlemek amacıyla
anytipini sık sık kullanıyordu. Sonuç olarak, bir gün eksik alanlara sahip bir nesne geldiğinde uygulama beklenmedik bir şekilde çökmüştü: tip kontrolü yokluğu nedeniyle bu hata üretime gitmişti.
Hikaye
Büyük bir projede iki farklı mikro hizmet arasında mesajlaşılıyordu. Hizmetlerden biri nesne yapısını değiştirdi, ancak TypeScript bu konuda uyarıda bulunmadı, çünkü tip
anyolarak açıkça tanımlanmıştı. Hata, kullanıcı şikayetleri sonucunda bir ay sonra bulundu.
Hikaye
Genç bir geliştirici, genel bir fonksiyonun döndürülen değerinin tipini tanımlamadı ve otomatik tip çıkarımına güvendi. Yeniden yapılandırma sonrasında diğer tarafta tip beklentileri çalışmadı ve proje genelinde hata zincirleri oluştu.