TypeScript ve JavaScript Arasındaki Farkı Anlama
Yayınlanan: 2021-09-21Aldığım sık sorulan sorulardan biri, JavaScript ile TypeScript arasındaki fark nedir?
Hadi bulalım…
Kodlamaya başladığınız andan itibaren JavaScript (JS), tüm ön uç projelerinizin bir parçası olurdu. JS'ye biraz aşinaysanız, TypeScript'i JS olarak düşünün ve uygulamanızı daha düzenli ve yazılı hale getiren bazı ek özellikler . TypeScript, JS geliştirmeyi daha verimli hale getirmek ve derleme hatalarını erkenden yakalamak için Microsoft tarafından açık kaynaklı bir proje olarak geliştirildi.
Bu makalede, JavaScript ve TypeScript'in bazı önemli özelliklerini ve her iki betik dili arasındaki farkları tartışacağız.
JavaScript nedir?
JavaScript, istemci tarafı komut dosyası oluşturma için kullanılır. Bir HTML sayfasında bir komut dosyası oluşturabilir veya .js uzantılı bir dosya oluşturup HTML dosyanıza dahil edebilirsiniz. JavaScript'i görebileceğiniz yaygın bir gerçek dünya örneği, kullanıcı adınız/şifreniz yanlış olduğunda size bir hata gösterildiği oturum açma sayfası doğrulamasıdır.
Basit bir JS kodu yazıp tarayıcıda çalıştıralım:
Bir example.html dosyası oluşturun ve aşağıdaki kodu ekleyin:
<script> feeling = 'happy'; feeling = 23; </script>Bu basit kod, bir değişken bildirir ve ona bir mutlu (string) değeri atar. Aynı değişkene farklı tipte (sayı) bir değer atayabiliriz. JavaScript bundan şikayet etmez ve kodu herhangi bir tarayıcıda sorunsuzca çalıştırabiliriz. Şimdi kullanıcıdan duygunun değerini alalım:
HTML'miz şöyle görünecek:
<input type = "textbox" id = "howyoufeel">ve komut dosyası şöyle olacaktır:
feeling = document.getElementById("howyoufeel").value;Komut dosyasına açık kontroller koymadıkça, JS kullanıcıdan herhangi bir değeri kabul edecek ve iletecektir. Yani, duygu değişkenine 234, @.#$% vb. gibi bir şey koyabilirsiniz.
JavaScript'in Özellikleri
Yukarıdan, JavaScript'in aşağıdaki özelliklerini gözlemleyebiliriz:
- Zayıf yazılmış komut dosyası dili
- İstemci tarafı ve sunucu tarafı (node.js ile) komut dosyası oluşturma için kullanılır
- Esnek ve dinamik
- Tüm büyük tarayıcılar tarafından desteklenir
- Hafif ve yorumlanmış
JavaScript'te uzmanlaşmakla ilgileniyorsanız, bu Udemy kursuna göz atın.
TypeScript nedir?
Gerçek dünyadaki bir uygulama birçok doğrulamaya ve dinamik kontrole sahip olacaktır. Bu tür uygulamalar için JavaScript kodunun bir noktada test edilmesi zor olacaktır, çünkü esas olarak tür denetimi yoktur. Kullanıcılardan değerler alırken, bunları en baştan almak önemlidir. TypeScript'in devreye girdiği yer burasıdır.
TypeScript güçlü bir şekilde yazılmıştır ve bir değişkenin türünü tanımlamazsanız şikayet eden bir derleyiciye sahiptir.
Hem JavaScript hem de TypeScript, bir betik dili için ECMAScript belirtimlerine uygundur. Typescript, tüm JavaScript kodunu çalıştırabilir ve tüm kitaplıklarını destekler; bu nedenle JavaScript'in üst kümesi olarak adlandırılır.
TypeScript kurulumu
Önceki kodumuzu TypeScript'te yürütmek için, npm paketini kullanarak TypeScript derleyicisini kurmamız gerekiyor (eğer düğüm js'niz varsa).
npm install -g typescriptveya doğrudan resmi Microsoft indirme sayfasından indirin. Kodun ts'den js'ye nasıl dönüştürüldüğünü görmek için TS oyun alanını da kullanabilirsiniz.
Bu yapıldıktan sonra, proje ayarlarını tsconfig.json yapılandırabilir ve TypeScript kodunu yazmak ve .ts olarak kaydetmek için herhangi bir IDE veya metin düzenleyiciyi kullanabilirsiniz.
Değişken türünü tanımlamadan yine de kurtulabilirsiniz ve TypeScript veri türünü çıkarabilir. Ancak, derleme sırasında ilk kullanılan türden (bizim durumumuzda bir String) başka bir şey verirseniz bir 'his' hatası alırsınız.
Bakım kolaylığı ve kullanım kolaylığı için kodun bir tür ek açıklamasına sahip olması her zaman temizdir:
var feeling: string = “happy”;Bu değil!
TypeScript, bir geliştiricinin hayatını kolaylaştırmak için birçok başka özellik sunar.
TypeScript'in Özellikleri
Typescript'in zengin bir özellik seti vardır ve her sürüm, geliştirmeyi eskisinden daha kolay hale getirmek için yeni özelliklerle birlikte gelir. Örneğin, yeni sürüm (4.0) ile birlikte bazı ek özellikler, değişken tanımlama grubu türleri, özel JSX fabrikaları, yapıcılardan sınıf özelliği çıkarımı vb.'dir. TypeScript'in bazı tipik özellikleri şunlardır:
- Arayüz, kalıtım, sınıf gibi nesne yönelimli programlama kavramlarını destekler. jenerik
- Hataların erken tespiti
- Sözdizimi denetimi ve önerileriyle IDE desteği
- Yazıldığından hata ayıklamak daha kolay
- JavaScript'e dönüştürülür
- Hem sunucu tarafı hem de istemci tarafı uygulamalar için kullanılır
- Platformlar arası ve tarayıcılar arası destek
- Tüm JS kitaplıklarını ve uzantılarını destekler
Neden TypeScript'e ihtiyacımız var? (TypeScript'in JavaScript'e Göre Avantajları)
Microsoft, TypeScript'i 2012'de halka açmadan önce kendi iç projeleri için iki yıl boyunca geliştirdi ve kullandı. Yazılı bir JavaScript oluşturdular çünkü kodu üretim düzeyinde kurumsal uygulamalar için test etmek daha kolaydı. Dinamik yazma özelliklerini kullanmaya devam edebilirsiniz, ancak gerçekten gerektiğinde değişkenleri de yazabilirsiniz.

Aşağıdaki kodu göz önünde bulundurun:
var mynum = //get from user; addten(number){ return number + 10; }Sonucun her zaman bir sayı olmasını beklerdik. Peki ya bir kullanıcı “koyun” verirse? Çıktı koyun10 olacaktır – ideal olarak, kullanıcıya bu işlemin mümkün olmadığını söylememiz gerekir!
Ayrıca, tür bilgisine sahip olduğunuzda, metin düzenleyicileri ve IDE'ler, çalışma zamanı hatalarını kullanmak ve kaydetmek için daha kullanışlı hale gelir. Kodu daha sonraki bir zamanda yeniden düzenlemek de daha kolaydır.
Bu, JavaScript'e ihtiyacımız olmadığı anlamına mı geliyor? (TypeScript'in JavaScript'e Göre Dezavantajları)
TypeScript'i JavaScript'in bir uzantısı olarak düşünebilirsiniz, ancak kesinlikle onun yerine geçmez.
Daha küçük kod parçaları için TypeScript bir ek yük haline gelebilir - yükleme, derleme, çapraz derleme gereksiz olacaktır. JavaScript ile, komut dosyanızı HTML olarak yazabilirsiniz ve işe yarayacaktır. Bir şeyi her değiştirdiğinizde tarayıcıyı yenileyebildiğiniz zaman kodda hata ayıklamak da daha kolaydır.
Kafa kafaya karşılaştırma
TypeScript ve JavaScript'in özelliklerini ve avantajlarını anladığımıza göre, şimdi daha fazla karşılaştırma yapalım:
| TypeScript | JavaScript |
| Derleme hatalarını erken yakalayan yazılı bir dil | Çalışma zamanı sırasında hataları öğrenebilirsiniz |
| Kod sürdürülebilirliğini ve okunabilirliğini iyileştirdiği için büyük projeler için uygundur | Daha fazla kod eklendikçe, test etmek ve hata ayıklamak zorlaşır, bu nedenle JS küçük projeler için uygundur |
| JS'nin üst kümesi, yani nesne yönelimi, tür denetimi ve daha fazlası gibi özellikler | Dinamik web içeriği oluşturmayı destekleyen bir betik dili |
| Derleyici kurulumu ve yapılandırma kurulumu gerektirir | Herhangi bir kuruluma gerek yok; JS kodu, <script> etiketi kullanılarak doğrudan bir tarayıcıya yazılabilir. |
| Tüm .ts dosyaları, yürütülmeden önce .js dosyalarına dönüştürülür; trans-derleme olarak bilinen | Geliştiriciler, <src> etiketini kullanarak yürütme için HTML dosyalarına .js dosyalarını doğrudan dahil edebilir. |
| Modüller, jenerikler, arayüzler gibi zengin özelliklerle güçlü ve sezgisel | Gelişmiş özellikler gerektirmeyen basit web uygulamaları için uygundur |
| Sunucu tarafı ve istemci tarafı komut dosyası için kullanılır | İstemci tarafı komut dosyası oluşturma için kullanımı kolaydır, ancak sunucu tarafı komut dosyası oluşturma için ağır ve karmaşık hale gelir |
| Derleme adımı nedeniyle yürütülmesi zaman alır | Derleme gerekmez, dolayısıyla daha hızlı yürütme |
| Hem statik hem de dinamik yazmayı destekler | Yalnızca dinamik yazmayı destekler |
| Tip açıklamasını şu şekilde belirtebiliriz: | Tipleri tanımlayamadığımız için tip açıklamaları belirtilemez. |
Çözüm
Öğrenme açısından bakıldığında, JavaScript sizin doğal seçiminiz olabilir. Bir dosya açarsınız, <script></script> etiketlerinin içine bir şeyler yazarsınız, onu HTML olarak kaydedersiniz - sonuçları göreceksiniz! Daha sonra daha dinamik içerik oluşturmak için bunun üzerine inşa edebilirsiniz.
Ayrıca, büyük ölçekli bir uygulama üzerinde çalışırken JavaScript bilgisine sahip olmak, kolaylıkla TypeScript'e geçmenize yardımcı olacaktır.
Bununla birlikte, bir TypeScript geliştiricisi olarak kariyer ve ödeme açısından, hem JS hem de TS projelerinde daha esnek ve rahat olacaksınız - bu nedenle kesinlikle piyasada daha iyi bir varlık olacaktır. Tipik olarak, TypeScript geliştiricilerine 110 bin - 147 bin dolar arasında herhangi bir ödeme yapılırken, JS geliştiricilerine yılda yaklaşık 63 bin - 118 bin dolar arasında ödeme yapılır.
