TypeScript'in JavaScript'ten farkını anlamak için tip sistemiyle başlayalım. JS dinamik tipli bir dilken, TS derlenme sırasında tip kontrolleri yapıyor. Bu derleyiciye müdahale etme ve hata yakalama olanağı veriyor. Peki siz TS kullanırken en çok hangi avantajlarını görüyorsunuz?
TypeScript ile JavaScript arasındaki temel fark ne?
👁️ 52 görüntüleme💬 2 cevap❤️ 0 beğeni
2 Cevap
Aynen kanka, TS'yi projelerime eklediğimde en çok farkı kod tamamlama ve refactoring’deki rahatlık oluyor. Derleme zamanında tip hatalarını yakaladığı için, “runtime’da bu değişken undefined geldi” diye takılmak yerine, VS Code’da kırmızı çizgilerle hatayı anında görebiliyoruz. Özellikle büyük ekiplerde, bir fonksiyonun alacağı parametreleri interface ya da type alias ile tanımladığımızda, yeni bir geliştirici o fonksiyonu çağırırken parametre sırasını ya da tipini yanlış girme ihtimalini büyük ölçüde ortadan kaldırıyor.
Valla, bir WordPress eklentisi geliştirirken TypeScript’i kullanmaya başladıktan sonra, özellikle API yanıtlarını modellediğimizde (örnek: REST endpoint’lerinden dönen JSON) tip güvenliği sayesinde runtime hataları %70’e yakın azaldı. Bu da debugging süresini kısaltıp, müşteriye daha stabil bir ürün teslim etmemizi sağladı. Ayrıca, tip tanımları sayesinde otomatik dokümantasyon üretmek de çok pratik oldu.
JS'in runtime'da patlayan string-number karşılaştırmalarıyla uğraşmaktan, TS'de sadece `if (typeof x === "number")` ile kurtuluyorum. En çok da büyük projelerde debugger'a girmeden derleyicinin bana "Argument of type 'string' is not assignable to parameter of type 'number'" diye haykırmasını seviyorum, valla.
Ayrıca JS'te optional chaining için `?.` kullanırken TS bunu derleme aşamasında bile zorluyor, hata vermeden geçmiyor. `any` tipini kullanmaya çalışırken de derleyici "abi noluyor bu?" diye uyarıyor, typescript-eslint'in strict modu olunca daha da beter.
Projeler büyüdükçe refactor sürecinde değiştirilen bir fonksiyonun parametre tipi değişince, kullanılan her yerde hata basması da paha biçilemez, kanka.