TypeScript Kazandı. Bize Aslında Ne Kazandırdı?

Artık kimse TypeScript kullanımı üzerine tartışmıyor. Yeni projeler varsayılan olarak onu kullanıyor. Tartışma sona erdi.

Gerçek değer sadece yazım hatalarını yakalamak değil. Çok daha fazlası.

Bir fonksiyon imzası dokümantasyon görevi görür. Asla eskimez. Kod değişirse, derleyici derlemeyi başarısız kılar.

Şu fonksiyona bakın:

function scheduleReminder(
  userId: string,
  at: Date,
  channel: "email" | "push" | "sms",
): Promise<ReminderId>;

Bunu tam olarak nasıl çağıracağınızı bilirsiniz. Neye ihtiyaç duyduğunu ve ne döndürdüğünü bilirsiniz. Kanalın şu üç özel string'den biri olması gerektiğini bilirsiniz.

Daha sonra bir "slack" seçeneği eklerseniz, derleyici sizi kodunuzun her parçasını güncellemeye zorlar. Bir yorum satırı ise sadece zamanla eskir ve sizi yanıltır.

Tiplendirilmemiş kodda, bir alanı yeniden adlandırmak korkutucu hissettirir. String'leri ararsınız ve en iyisini umarsınız. TypeScript'te ise tipi değiştirirsiniz. Derleyici, bozulan her şeyin bir yapılacaklar listesini size sunar. Refactoring güvenli hale gelir.

Tipler yapay zekaya da yardımcı olur.

Bir yapay zeka modeli, JavaScript'teki kod yapılarını tahmin etmeye çalışır. TypeScript'te ise tip, spesifikasyondur. Yapay zeka neyin izinli olduğunu bilir. Hatalar, üretim ortamının çökmesi yerine hata olarak görünür.

Tipler birer koruma bariyeri (guardrails) görevi görür. Her satırı elle kontrol etmek yerine, yapay zeka kodunu güvenle kullanmanızı sağlarlar.

Şu kurallarla daha iyi tipler yazın:

• Birçok boolean yerine union tipler kullanın. "loading" | "error" | "ready" gibi bir durum, üç ayrı flag'den daha iyidir. • Domain tiplerinize isim verin. Niyetinizi belirtmek için type Cents = number kullanın. • any kullanımından kaçının. Bunun yerine unknown kullanın ve tipi daraltın. • Inference (çıkarım) mekanizmasına izin verin. Fonksiyon imzaları gibi sınırlarınızı belirtin (annotate), ancak geri kalanının akışına bırakın.

TypeScript, kod tabanlarını zorunlu kılınan sözleşmeler (contracts) setine dönüştürdü. Bu sözleşmeler, korkusuzca refactoring yapmayı ve güvenilir yapay zeka desteğini mümkün kılar.

Tipleri hataları durdurmak için kullanmaya başladık. Onları kullanmaya devam ediyoruz çünkü her şeyin temeli onlar.

Source: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-53lo