TypeScript Nedir?
TypeScript, Microsoft tarafından geliştirilen ve 2012'de yayımlanan, JavaScript'in üst kümesi (superset) olan bir programlama dilidir. Temel fikir basit: JavaScript'e statik tip sistemi ekleyerek, hataları çalışma zamanından önce — derleme sırasında — yakalamak. Anders Hejlsberg (C# ve Delphi'nin mimarı) liderliğinde geliştirilen dil, bugün Google (Angular), Microsoft (VS Code), Airbnb, Slack, Asana ve Stripe gibi şirketlerin kod tabanlarında yer alıyor.
Üst kümesi olması demek: her geçerli JavaScript kodu geçerli TypeScript kodudur. Mevcut JS projenize kademeli olarak TypeScript ekleyebilirsiniz; her şeyi bir anda yazmanıza gerek yok. TypeScript kodu, tsc (TypeScript Compiler) ile derlenerek çalıştırılabilir JavaScript'e dönüştürülür — tarayıcılar ve Node.js yalnızca JS anlar.
TypeScript ile JavaScript Arasındaki Farklar
İki dilin farkı "sözdizimi" değil, tip güvenliği ve geliştirici deneyimi derinliğidir:
| Özellik | JavaScript | TypeScript |
|---|---|---|
| Tip sistemi | Dinamik (çalışma zamanı) | Statik (derleme zamanı) |
| Hata yakalama | Çalışırken (runtime) | Derlenirken (compile-time) |
| IDE desteği | Sınırlı | Güçlü (otomatik tamamlama, refactoring) |
| Büyük projeler | Zorlanır | Ölçeklenebilir |
| Öğrenme eğrisi | Düşük | Orta (JS bilgisi gerekir) |
Pratik fark: JavaScript'te user.name yazdığınızda user tanımlı değilse hata çalışırken çıkar. TypeScript'te aynı hata derleme sırasında kırmızı çizgiyle gösterilir — kullanıcıya ulaşmadan önce. Bu, büyük ekiplerde ve uzun ömürlü projelerde devrim niteliğindedir.
Tip Sistemi: Temel Tipler ve İleri Seviye
TypeScript'in kalbi tip sistemidir. Temel tipler JavaScript'teki primitif tiplere karşılık gelir ama çok daha güçlüdür:
- Primitif tipler:
string,number,boolean,null,undefined,symbol,bigint - Diziler:
number[]veyaArray<number>— iki yazım da geçerli - Tuple:
[string, number]— sabit uzunluklu, sabit tipli dizi - Enum:
enum Direction { Up, Down }— isimli sabit kümeleri - Union:
string | number— değişken iki tip olabilir - Intersection:
TypeA & TypeB— iki tipin birleşimi - Literal tipler:
"hello" | "world"— yalnızca belirli değerler - unknown ve any:
anytip kontrolünü devre dışı bırakır;unknowngüvenli alternatiftir — kullanmadan önce tip daraltma gerekir
Interface ve Type: Nesne yapılarını tanımlamanın iki yolu vardır. interface genellikle nesne şekilleri için, type daha karmaşık birleşimler için tercih edilir:
interface User {
id: number;
name: string;
email?: string; // opsiyonel alan
readonly createdAt: Date; // salt okunur
}
type Status = "active" | "inactive" | "pending";
type ID = string | number;
Generics: Tipleri parametreleştirerek yeniden kullanılabilir bileşenler yazmayı sağlar. Bir fonksiyonun hangi tiple çalıştığını bilir ama her tip için ayrı fonksiyon yazmak zorunda kalmazsınız:
function first<T>(arr: T[]): T | undefined {
return arr[0];
}
const n = first([1, 2, 3]); // T = number
const s = first(["a", "b"]); // T = string
TypeScript Gerçek Dünyada: Kim Ne İçin Kullanıyor?
TypeScript artık "isteğe bağlı" bir araç değil, endüstri standardı hâline geldi. 2026 itibarıyla:
- Angular: Google'ın framework'ü tamamen TypeScript ile yazıldı ve TS kullanımını zorunlu kılıyor.
- React: React 19 ile birlikte TypeScript desteği varsayılan hâle geldi; yeni projelerin büyük çoğunluğu TS ile başlıyor.
- Vue: Vue 3 tamamen TypeScript ile yeniden yazıldı; Composition API ile TS desteği birinci sınıf.
- Node.js: NestJS gibi backend framework'leri TypeScript ile çalışır; API geliştirmede tip güvenliği kritik.
- VS Code: Microsoft'un editörünün kendisi TypeScript ile yazıldı — "dogfooding" örneği.
- Stripe, Slack, Airbnb: Büyük ölçekli ürünler TypeScript ile geliştiriliyor; tip güvenliği refactoring güvenliği sağlıyor.
DefinitelyTyped: npm paketlerinin TypeScript tanımlarını barındıran topluluk projesi. npm install --save-dev @types/react gibi komutlarla popüler JS kütüphanelerini TS projelerinde güvenle kullanabilirsiniz.
TypeScript Öğrenme Yolu: 2026 Rehberi
TypeScript öğrenmek için ön koşul JavaScript temelleridir. JS bilmiyorsanız önce programlama temellerini öğrenin. İşte adım adım yol:
- Adım 1 — JS Temelleri (2-4 hafta): Değişkenler, fonksiyonlar, diziler, nesneler, async/await, modüller. TypeScript'i anlamak için JS'i iyi bilmek şart.
- Adım 2 — Temel Tipler (1 hafta):
string,number,boolean, diziler, tuple'lar.tsckurulumu vetsconfig.jsonyapılandırması. - Adım 3 — Interface ve Type (1-2 hafta): Nesne tipleri, opsiyonel alanlar, union/intersection. Gerçek projelerde en çok kullanılan özellikler.
- Adım 4 — Generics ve İleri Tipler (2-3 hafta): Generics, type guards, mapped types, conditional types. İşe yarayan ama acele edilmemeli.
- Adım 5 — Framework Entegrasyonu (2-4 hafta): React + TypeScript, Vue + TypeScript veya NestJS ile backend. Gerçek proje deneyimi.
- Adım 6 — İleri Seviye (sürekli): Utility types (
Partial,Pick,Omit), declaration files, monorepo yapılandırması.
Önerilen kaynaklar: TypeScript'in resmî el kitabı (typescriptlang.org), Total TypeScript (Matt Pocock), ve gerçek projeler. En iyi öğrenme yöntemi: mevcut bir JS projesini TypeScript'e taşımak.
TypeScript mi, JavaScript mi? Ne Zaman Hangisi?
Bu sorunun tek doğru cevabı yok — bağlama göre değişir:
| Senaryo | Önerilen | Neden |
|---|---|---|
| Küçük script, hızlı prototip | JavaScript | Derleme yok, anında çalışır |
| Büyük ekip, uzun vadeli proje | TypeScript | Tip güvenliği, refactoring güvenliği |
| Açık kaynak kütüphane | TypeScript | Tipler dokümantasyon görevi görür |
| Öğrenme aşaması | JavaScript | Önce temelleri öğren, sonra TS |
| Startup MVP'si | TypeScript | Hızlı iterasyon + tip güvenliği |
Altın kural: Ekip 5+ kişiyse ve proje 6 aydan uzun sürecekse TypeScript. Tek başına hızlı bir script yazıyorsanız JavaScript yeterli. Çoğu profesyonel web geliştirme projesi için TypeScript artık varsayılan seçim.
Sıkça Sorulan Sorular
TypeScript öğrenmek için ne kadar zaman gerekir?
JavaScript bilen birisi için temel TypeScript 2-3 hafta, seviyede kullanmak 1-2 ay sürer. Ama JS temelleri olmadan önce TypeScript'e geçmek kafa karıştırıcı olır — önce JS'yi öğrenin.
TypeScript JavaScript'i mi yok edecek?
Hayır. TypeScript, JavaScript'in üst kümesidir ve derlenerek JavaScript'e dönüştürülür. Tarayıcılar ve Node.js yalnızca JS çalıştırır. TypeScript bir "rakip" değil, bir "güçlendirici"dir.
Hangi IDE kullanmalıyım?
Visual Studio Code (VS Code) en popüler seçim — Microsoft tarafından geliştirilen ve TypeScript ile mükemmel entegre olan ücretsiz editör. WebStorm da güçlü bir alternatif ama ücretli.
TypeScript performansı etkiler mi?
Hayır. TypeScript derlenerek JavaScript'e dönüştürülür; çalışma zamanı performansı aynıdır. Tip kontrolleri yalnızca derleme sırasında yapılır ve çıktı JS'e dahil edilmez.
Mevcut JS projesine TypeScript ekleyebilir miyim?
Evet. tsconfig.json ile allowJs: true ayarı yaparak mevcut JS dosyalarını TS projesine dahil edebilirsiniz. Dosyaları .js'den .ts'ye dönüştürerek kademeli geçiş yapabilirsiniz.
TypeScript ile hangi framework'ler kullanılır?
React, Vue, Angular, Next.js, Nuxt, NestJS, Express — hepsi TypeScript ile çalışır. 2026'da yeni framework'lerin çoğu TypeScript desteğini varsayılan olarak sunar.
TypeScript öğrenmek için hangi kaynaklar önerilir?
Resmî el kitabı (typescriptlang.org), Total TypeScript (Matt Pocock), ve gerçek projeler. En iyi yöntem: mevcut bir JS projesini TypeScript'e taşımak ve hata mesajlarını okumayı öğrenmek.
Sonuç: TypeScript, Modern Web'in Dilidir
TypeScript, JavaScript'in eksiklerini kapatmak için doğdu ve bugün modern web geliştirmenin de facto standardı hâline geldi. Statik tip sistemi, güçlü IDE desteği ve endüstri düzeyinde benimsenmesiyle büyük projeler için neredeyse zorunlu.
Öğrenme yolculuğu: JavaScript temelleri → temel tipler → interface/type → generics → framework entegrasyonu. Acele etmeyin; her seviye bir öncekinin üzerine inşa edilir. Mevcut JS projeniz varsa kademeli geçisin; yeni bir proje başlatıyorsanız doğrudan TypeScript ile başlayın.
Programlama yolculuğunuzda diğer konulara da göz atabilirsiniz: Python nedir? rehberimiz, yapay zeka kod yazma araçları karşılaştırmamız ve ChatGPT vs Claude vs Gemini incelememiz sizi bekliyor.
Bu makale TechWave tarafından hazırlanmıştır. TypeScript 5.x sürümü itibarıyla yazılmıştır; dil aktif geliştirilmeye devam etmektedir, en güncel bilgiler için resmî dokümantasyonu kontrol edin.