TypeScript Kazandı. Bu Bize Ne Sağladı?
Tartışma bitti. Yeni frontend projelerinin çoğu varsayılan olarak TypeScript kullanıyor. İnsanlar artık onu benimseyip benimsememe konusunda tartışmıyor.
Asıl değer sadece yazım hatalarını yakalamak değil. Bu, başlangıçtaki vaatlerden çok daha derin bir konu.
Tipler, asla eskimeyen bir dokümantasyon sağlar. Bir fonksiyon imzası, bir kod parçasının tam olarak neye ihtiyaç duyduğunu ve ne döndürdüğünü size söyler. Eğer bir geliştirici bir union type'a yeni bir seçenek eklerse, derleyici sizi kodunuzun her parçasını güncellemeye zorlar. Yorumlar eskir. Tipler eskimez.
Refactoring, korkutucu bir görevden güvenli bir göreve dönüşür. Tiplendirilmemiş kodda, bir alanı yeniden adlandırmak bir kumar gibi hissettirir. TypeScript'te ise tipi değiştirirsiniz ve derleyici size bozulan her satırın listesini verir. Bu, eski koda dokunma korkusunu ortadan kaldırır.
Tipler aynı zamanda yapay zeka ile çalışmanızı da iyileştirir.
Bir yapay zekadan tiplendirilmemiş JavaScript'i düzenlemesini istediğinizde, yapay zeka yapıyı tahmin etmeye çalışır. Bu da production hatalarına yol açan yanlışlara neden olur. TypeScript'te ise tip, bir şartname (specification) görevi görür. Yapay zeka kuralları bilir. Eğer yapay zeka bir hata yaparsa, derleyici bunu anında yakalar. Tipler, "makul görünen kodu" (plausible code), "kanıtlanmış koda" (proven code) dönüştürür.
Tipler sizi yavaşlatmaz. Bir yapay zeka iş akışında sizi hızlandırırlar. Her satırı manuel olarak kontrol etmenize gerek kalmadan üretilen koda güvenebilmeniz için birer koruma bariyeri (guardrails) görevi görürler.
Tiplerinizi bir amaç doğrultusunda yazın:
• Birden fazla boolean yerine union type'lar kullanın. "loading" | "error" | "ready" gibi bir durum (status), imkansız durumların oluşmasını engeller.
• Domain tiplerinize isim verin. type Cents = number kullanmak niyetinizi netleştirir.
• "any" kullanımından kaçının. Bunun yerine "unknown" kullanın ve tiplerinizi daraltın (narrow). "any", güvenlik ağınızı yok eder.
• Inference (çıkarım) mekanizmasının çalışmasına izin verin. Her şeyi etiketlemenize gerek yok. Fonksiyon imzalarınızı ve dışa aktarılan (exported) API'lerinizi etiketleyin, geri kalanı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.
Kaynak: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-12m8
