| Paradigması | Çok paradigmalı; nesne yönelimli, fonksiyonel, generic, emirsel (imperative) |
|---|---|
| İlk çıkışı | 1 Ekim 2012) |
| Tasarımcı | Anders Hejlsberg |
| Geliştirici | Microsoft |
| Kararlı sürüm | 5.4 (Mart 2024) (4 Mart 2024)) |
| Etkilendikleri | C#, Java, JavaScript, ActionScript |
| Etkiledikleri | AtScript, AssemblyScript, Swift, Kotlin |
| İşletim sistemi | Çapraz Platform |
| Lisans | Apache License 2.0 |
| Olağan dosya uzantıları | .ts, .tsx |
| Web sitesi | typescriptlang.org |
TypeScript, Microsoft tarafından geliştirilen ve bakımı yapılan, açık kaynak kodlu bir programlama dilidir. JavaScript'in sıkı bir üst kümesi (superset) olan TypeScript, dile isteğe bağlı durağan tipleme (static typing) ve sınıf tabanlı nesne yönelimli programlama (OOP) imkanları ekler. 2012 yılındaki ilk çıkışından bu yana, özellikle büyük ölçekli kurumsal uygulamaların geliştirilmesinde endüstri standardı haline gelmiştir.
Genel Bakış
TypeScript, JavaScript ekosistemindeki "kod karmaşıklığı" sorununu çözmek amacıyla Anders Hejlsberg (C# ve Delphi'nin yaratıcısı) tarafından tasarlanmıştır. TypeScript ile yazılan kodlar, derleme aşamasında (transpilation) standart JavaScript'e (ES3, ES5, ES6 veya daha güncel sürümler) dönüştürülür. Bu sayede yazılan kodlar; modern tarayıcılarda, Node.js, Deno ve Bun gibi tüm JavaScript çalışma ortamlarında sorunsuz bir şekilde yürütülebilir.
Temel Özellikler
Tip Sistemi ve Güvenlik
TypeScript'in en belirgin özelliği, değişkenlerin, fonksiyon parametrelerinin ve dönüş değerlerinin türlerinin önceden tanımlanabilmesidir. Bu sistem şunları sağlar:
- **Hata Önleme:** Yazım hataları ve mantıksal tip uyumsuzlukları, kod henüz çalıştırılmadan derleme aşamasında fark edilir.
- **Tip Çıkarımı (Type Inference):** Programcının açıkça belirtmediği durumlarda bile derleyici, kodun akışından değişkenin türünü tahmin edebilir.
- **Arayüzler (Interfaces):** Karmaşık veri yapılarının şablonlarını tanımlayarak kodun sözleşmelere dayalı (contract-based) ilerlemesini sağlar.
Gelişmiş Programlama Yapıları
TypeScript, standart JavaScript'te (ECMAScript) henüz yaygınlaşmamış veya sınırlı olan pek çok özelliği destekler:
- **Generic Yapılar:** Veri tiplerinden bağımsız, yeniden kullanılabilir bileşenler ve fonksiyonlar oluşturulmasına olanak tanır.
- **Enumlar ve Tuplelar:** Veri gruplandırma ve sabit setleri tanımlama işlemlerini daha güvenli hale getirir.
- **Decoratorlar:** Sınıf ve metot davranışlarını meta-verilerle genişletmek için kullanılır (Angular gibi çerçevelerde yaygındır).
Araç Desteği
TypeScript, modern entegre geliştirme ortamları (IDE) ile derin entegrasyona sahiptir. Visual Studio Code gibi araçlar; otomatik tamamlama (IntelliSense), anlık hata bildirimi ve güvenli kod yapılandırma (Refactoring) özellikleri sunarak geliştirici verimliliğini %30'a varan oranlarda artırabilir.
Derleme Süreci
TypeScript kodu doğrudan tarayıcılar tarafından yorumlanamaz. Dönüştürme işlemi için şu araçlar yaygın olarak kullanılır:
- **tsc (TypeScript Compiler):** Dilin resmi derleyicisidir, hem tip kontrolü yapar hem de çıktı üretir.
- **Babel:** Genellikle büyük projelerde TypeScript'i JavaScript'e dönüştürmek için kullanılan popüler bir araçtır.
- **SWC ve Esbuild:** Pas ve Go dilleri ile yazılmış, milisaniyeler içinde derleme yapabilen yeni nesil hızlı araçlardır.
Kullanım Alanları
Günümüzde TypeScript; **Angular**, **React**, **Vue.js** ve **Svelte** gibi modern ön uç (frontend) kütüphanelerinin vazgeçilmez parçasıdır. Arka uçta (backend) ise **NestJS** gibi çerçeveler tamamen TypeScript üzerine inşa edilmiştir.
