# JavaScript vs TypeScript

Adres: https://softwaredictionary.org/tr/karsilastirma/javascript-vs-typescript
Son güncelleme: 2026-09-30

Kısaca: JavaScript, tarayıcıların ve Node.js'in çalıştırdığı dinamik tipli dildir; TypeScript ise ona statik tipler ekleyen ve JavaScript'e derlenen bir üst kümedir.

## JavaScript ile TypeScript arasındaki fark nedir?

JavaScript web'in programlama dilidir: her tarayıcı onu çalıştırır, Node.js gibi çalışma ortamları da sunucularda çalıştırır. TypeScript, JavaScript'in bir üst kümesidir; yani geçerli her JavaScript programı aynı zamanda geçerli bir TypeScript programıdır ve buna `name: string` gibi isteğe bağlı tip bildirimleri eklenir.

Asıl fark, tip hatalarının ne zaman bulunduğudur. JavaScript tipleri yalnızca program çalışırken denetler; bu yüzden sayı beklenen yere bir metin vermek ancak canlıda bir hata olarak ortaya çıkabilir. TypeScript derleyicisi tipleri kod çalışmadan önce denetler, sonra tipleri silip düz JavaScript üretir; dolayısıyla tiplerin çalışma zamanında hiçbir maliyeti yoktur.

İkisi rakip değil, birbirinin üzerine oturan katmanlardır. TypeScript kodu sonunda her zaman JavaScript'e dönüşür, popüler kütüphanelerin çoğu tip tanımlarıyla birlikte gelir ve birçok proje dosyaları tek tek `.js` yerine `.ts` olarak yeniden adlandırarak kademeli geçiş yapar. Node.js'in yeni sürümleri ve bazı çalışma ortamları, tip bildirimlerini ayıklayarak `.ts` dosyalarını doğrudan bile çalıştırabilir.

Sık yapılan bir yanlış, TypeScript'in kodu hızlandırdığı ya da veriyi çalışma zamanında denetlediği düşüncesidir. Tipler derleme sırasında silinir; bu yüzden TypeScript bir API'den ya da formdan gelen veriyi doğrulayamaz, güvenilmeyen girdi için yine çalışma zamanı denetimlerine ihtiyaç vardır.

| Özellik | JavaScript | TypeScript |
| --- | --- | --- |
| Tipleme | Dinamik: tipler yalnızca kod çalışırken denetlenir | Statik: tipler kod çalışmadan önce derleyici tarafından denetlenir |
| Çalıştığı yer | Tarayıcılar ve Node.js doğrudan çalıştırır | Çalışmadan önce JavaScript'e derlenir ya da tipleri ayıklanır |
| Tip hataları | Çalışma zamanında, testte ya da canlıda ortaya çıkar | Editörde ve derleme sırasında ortaya çıkar |
| Kurulum | Derleme adımı yok; bir `<script>` etiketi ya da `node app.js` yeterli | `tsc` derleyicisi, bir paketleyici ya da tipleri ayıklayan bir çalışma ortamı gerekir |
| Editör desteği | İpuçları çıkarıma ve JSDoc yorumlarına dayanır | Tiplerden gelen zengin otomatik tamamlama, güvenli yeniden adlandırma ve tanıma gitme |
| Öğrenme eğrisi | Daha kolay: başta öğrenilecek kavram az | Daha dik: tipler, generic'ler, arayüzler ve derleyici seçenekleri eklenir |
| En uygun olduğu yer | Küçük betikler, hızlı prototipler ve temelleri öğrenme | Büyük kod tabanları, ekipler ve uzun ömürlü uygulamalar |

## JavaScript şu durumlarda doğru seçim

- Küçük bir betik, prototip ya da tek seferlik bir araç yazıyorsunuz.
- Hiç derleme kurulumu istemiyor, kodu doğrudan çalıştırmak istiyorsunuz.
- Dilin temellerini hâlâ öğreniyorsunuz.

## TypeScript şu durumlarda doğru seçim

- Kod tabanı büyük ya da yıllarca bakımı yapılacak.
- Kodu birkaç geliştirici paylaşıyor ve net sözleşmelere ihtiyaç var.
- Hataları editörün kod çalışmadan yakalamasını istiyorsunuz.
- Sık yeniden düzenleme (refactor) yapıyorsunuz ve araç destekli güvenli değişiklikler istiyorsunuz.

## Sık sorulan sorular

**TypeScript, JavaScript'ten daha mı iyi?**

Genel olarak hiçbiri diğerinden iyi değildir. Hataları erken yakalamanın önemli olduğu büyük ya da uzun ömürlü projelerde TypeScript karşılığını verir; küçük betikler ve hızlı denemeler için düz JavaScript daha basittir.

**TypeScript'ten önce JavaScript öğrenmem gerekir mi?**

Pratikte evet. TypeScript, üzerine tip eklenmiş JavaScript'tir; söz dizimi, çalışma zamanı davranışı ve API'leri JavaScript'inkilerdir. Önce temel dili bilmek TypeScript'i çok kolaylaştırır.

**TypeScript tarayıcıda çalışır mı?**

Doğrudan çalışmaz. Tarayıcılar yalnızca JavaScript çalıştırır; bu yüzden bir derleme aracı, TypeScript'i tarayıcıya ulaşmadan önce JavaScript'e derler ya da tiplerini ayıklar.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
