4 puan yazan GN⁺ 2025-03-25 | 4 yorum | WhatsApp'ta paylaş
  • TypeScript, JavaScript'e tip bilgisi ekleyen bir dildir
    • JS motoru tarafından çalıştırılmadan önce tip bilgisi kaldırılır → yani yazım ve dağıtım sürecinde ek çalışma gerekir
    • Peki bu ek çalışma buna değer mi? → Kesinlikle değer

Otomatik tamamlama ve kod düzenlerken hata yakalama

  • TypeScript, kod yazarken otomatik tamamlama ve hata yakalama sağlar
  • Örnek 1: yazım hataları, yanlış tip, eksik argüman
    • Var olmayan bir özelliğe erişildiğinde hata gösterilir. Otomatik tamamlamada görünmez
    • Yanlış tipte bir metod çağrıldığında hata gösterilir
    • Zorunlu argüman eksikse hata gösterilir
    • Yanlış tipte bir argüman verildiğinde hata gösterilir
  • Örnek 2: fonksiyon dönüş değeri hatası
    • Dönüş değeri tanımlanan tiple eşleşmiyorsa hata gösterilir
    • Örneğin dönüş değeri string[] iken dönüş tipi string olarak tanımlandıysa hata oluşur
  • Örnek 3: opsiyonel özellik işleme hatası
    • Opsiyonel bir özellik dönüş değeri olarak kullanıldığında tipler eşleşmiyorsa hata gösterilir
  • Örnek 4: switch ifadesinde eksik case
    • switch ifadesindeki tüm case'ler ele alınmadıysa hata oluşur
    • Kalan değerin never tipi olması gerektiği şartı ihlal edilirse hata oluşur
  • Örnek 5: kodda belirli durumları işleme hatası
    • Belirli değerlere göre dallanma yapılırken yanlış durumlarda hata oluşur
    • Örneğin belirli bir nesne tipinde var olmayan bir özelliğe erişildiğinde hata oluşur

Fonksiyon parametreleri ve dönüş tiplerini belirtmek → iyi bir dokümantasyon işlevi

  • TypeScript, fonksiyonların parametre ve dönüş tiplerini açıkça belirtebilir
  • Kodun anlaşılabilirliğini ve bakım kolaylığını artırır
  • Bir fonksiyonun argümanlarının ve dönüş değerinin hangi tipte olduğu net biçimde görünür

Kod refactoring'ini güçlendirir

  • TypeScript, kod refactoring'inin daha güvenli yapılmasına yardımcı olur
  • Bir metod adı değiştirildiğinde bağlı tüm kodda güvenle yansıtılır
  • Kod içindeki bağlantı ilişkileri doğru biçimde anlaşılabilir

TypeScript kullanmak artık daha kolay

  • TypeScript'i çalıştırmak ve derlemek daha kolay hale geldi
  • Node.js, Deno, Bun gibi platformlarda TypeScript doğrudan çalıştırılabilir
  • Vite gibi bundler'lar TypeScript'i varsayılan olarak destekler
  • Type stripping tekniği devreye girdi → yalnızca tip bilgisi kaldırılır, başka dönüşüm yapılmaz
  • npm paketlerini dağıtmak iyileşti → JavaScript ve tip bildirim dosyalarının otomatik üretilmesi destekleniyor

TypeScript'in dezavantajları

  • Bir öğrenme eğrisi vardır → JavaScript'ten daha karmaşıktır
  • Bazı npm paketlerinde tip tanımları yoksa veya hatalıysa sorun çıkabilir
  • tsconfig.json yapılandırması karmaşık olabilir
    • Mümkün olduğunca katı ayarlar kullanılırsa bu sorun hafifletilebilir
    • Tip kaldırmanın netleşmesiyle tsconfig.jsonun rolü daha basit hale gelir

TypeScript SSS

TypeScript kodu ağır değil mi?

  • TypeScript, tip çıkarımı sayesinde minimum tip tanımıyla da kod yazmayı mümkün kılar
  • Karmaşık tip açıklamaları olmadan da faydalı şekilde kullanılabilir

TypeScript, JavaScript'i C# veya Java'ya dönüştürmeye mi çalışıyor?

  • İlk dönemlerde JavaScript'in eksik özelliklerini tamamlamak için class, module, enum gibi yapılar eklenmişti
  • Günümüzde ise TypeScript, ECMAScript standardına uyumlu olacak şekilde geliştiriliyor
  • JavaScript'te olmayan özellikler TypeScript'e eklenmiyor

TypeScript yalnızca nesne yönelimli programlamayı (OOP) mı destekliyor?

  • TypeScript, fonksiyonel programlama kalıplarını da iyi destekler
  • Örneğin discriminated union, fonksiyonel programlamada sık kullanılır

Karmaşık tip tanımlarını mutlaka öğrenmek gerekir mi?

  • TypeScript kullanımının büyük bölümü için basit tip tanımları yeterlidir
  • Karmaşık tip tanımları kütüphane yazarken faydalıdır, ancak genel kullanımda gerekli değildir

TypeScript öğrenmek ne kadar sürer?

  • Temel kavramlar bir günde öğrenilebilir
  • Basit kod yazma ve debug etme ertesi günden itibaren mümkündür
  • Zamanla daha karmaşık tipler ve ileri seviye özellikler öğrenilebilir

Sonraki okumalar

4 yorum

 
skrevolve 2025-03-26

Güçlü tiplemenin sağladığı avantajlar var, C++'ta da durum aynı.

 
slowandsnow 2025-03-25

JavaScript'ten TypeScript'e geçince, gözün kapalı geliştirirken bir anda gözünü açmış gibi hissediyorsun. Tiplerin verdiği güven, otomatik tamamlama ve Copilot'la birleşimi.

 
bungker 2025-03-25

Şirketimizdeki ekipler "JavaScript yeter" diyerek projelere başladı ama şimdi hepsi TypeScript'e geçiyor.

 
tsboard 2025-03-25

JavaScript’in yerini almak yerine onu tamamlaması, bana kalırsa TypeScript’in Dart’ı yenerek başarılı olmasının temel nedeni. Onu öğrenmiş olmaktan gerçekten çok memnunum.