TypeScript'i nasıl pazarlarım (Sales Pitch)
(2ality.com)- 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üş tipistringolarak 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
switchifadesindeki tüm case'ler ele alınmadıysa hata oluşur- Kalan değerin
nevertipi 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.jsonyapı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
- What is TypeScript?
- Tackling TypeScript (ücretsiz)
4 yorum
Güçlü tiplemenin sağladığı avantajlar var, C++'ta da durum aynı.
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.
Şirketimizdeki ekipler "JavaScript yeter" diyerek projelere başladı ama şimdi hepsi TypeScript'e geçiyor.
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.