Ana içeriğe geç

Yan yana

JavaScriptvsTypeScript

JavaScript ile TypeScript arasındaki fark nedir?

Güncellendi 2 dk okuma7 fark

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

JavaScript, web tarayıcılarında sayfaları etkileşimli hale getiren ve Node.js gibi çalışma ortamlarıyla sunucularda da çalışan programlama dilidir.

JavaScript sayfasını oku

TypeScript

TypeScript, JavaScript üzerine statik tipler ekleyerek birçok hatayı kod çalışmadan yakalayan ve düz JavaScript'e derlenen bir programlama dilidir.

TypeScript sayfasını oku

JavaScript ve TypeScript karşılaştırması

ÖzellikJavaScriptTypeScript
TiplemeDinamik: tipler yalnızca kod çalışırken denetlenirStatik: tipler kod çalışmadan önce derleyici tarafından denetlenir
Çalıştığı yerTarayı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 çıkarEditörde ve derleme sırasında ortaya çıkar
KurulumDerleme adımı yok; bir <script> etiketi ya da node app.js yeterlitsc 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ırTiplerden gelen zengin otomatik tamamlama, güvenli yeniden adlandırma ve tanıma gitme
Öğrenme eğrisiDaha kolay: başta öğrenilecek kavram azDaha dik: tipler, generic'ler, arayüzler ve derleyici seçenekleri eklenir
En uygun olduğu yerKüçük betikler, hızlı prototipler ve temelleri öğrenmeBüyük kod tabanları, ekipler ve uzun ömürlü uygulamalar

Fark, açıklamalı

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.

Hangisini kullanmalısınız?

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.

Aynı fonksiyon, tipsiz ve tipli

JavaScripttypescript
// JavaScript: nothing stops a wrong call
function total(price, quantity) {
  return price * quantity;
}

total(10); // runs and silently returns NaN
TypeScripttypescript
// TypeScript: the mistake is caught before running
function total(price: number, quantity: number): number {
  return price * quantity;
}

total(10); // Error: Expected 2 arguments, but got 1

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.

Daha fazla

Ayarlar