Giriş 2010'ların başında bir geliştiriciye, özgür ruhlu JavaScript'e katı kurallar ve statik tipler getirmek için gönüllü olacağımızı söyleseniz size gülerdi. Ancak bugün, modern web'in omurgası dinamik değil, statik olarak yazılıyor. TypeScript artık sadece JavaScript'in "havalı bir eklentisi" değil; production (canlı) ortamında patlamaları önleyen bir emniyet kemeridir. Peki, bu ekosistem gerçekten öğrenme eğrisine değer mi?
Vahşi Batıdan Kurumsal Mimarilere JavaScript, esnekliği sayesinde popüler oldu. Ancak bir proje 50.000 satırı geçtiğinde bu esneklik bir kabusa dönüşür. user.id bazen string, bazen number geliyorsa ve siz bunu fark etmeyip matematiksel işlem yapıyorsanız, uygulama müşterinin elinde patlar.
TypeScript (TS), JavaScript'in bir üst kümesidir (superset). Yani her JS kodu geçerli bir TS kodudur, ancak TS bize "niyetimizi" derleyiciye anlatma şansı verir.
Neden TypeScript? (Developer Experience)
Erken Hata Tespiti: Hataları kullanıcı değil, IDE'niz görür. Kodu yazarken altı kırmızı çizilir.
TypeScript // Hata: Property 'email' does not exist on type 'User'. function sendMail(user: User) { console.log(user.email); }
IntelliSense ve Refactoring: VS Code gibi editörlerde . (nokta) koyduğunuzda neye erişebileceğinizi bilirsiniz. Bir değişkenin adını değiştirmek, tüm proje genelinde güvenle yapılabilir.
Dökümantasyon Olarak Kod: interface tanımları, o fonksiyonun ne beklediğini ve ne döndürdüğünü anlatan en güncel belgedir.
"Any" Tuzağına Dikkat TypeScript'e geçip her şeye : any yazmak, Ferrari alıp tüp taktırmaya benzer. any, TypeScript'in tüm güvenlik mekanizmalarını devre dışı bırakır. Bunun yerine unknown veya Generics kullanarak esneklik sağlanmalıdır.
Sonuç TypeScript kullanmak, başlangıçta kod yazma hızınızı %10 yavaşlatabilir. Ancak debug (hata ayıklama) sürenizi %90 azaltır. Eğer hobi projesi değil, ölçeklenebilir bir ürün geliştiriyorsanız; TypeScript bir tercih değil, zorunluluktur.
✨ Bu yazıyı faydalı buldun mu?