TypeScript Nedir ?

livcon

Üye
21 Tem 2021
155
87
21
h9096fj.jpg


Merhaba arkadaşlar, bu makalede TypeScript nedir ? ne işe yarar ? JavaScript ile arasındaki farklar nelerdir ? gibi konuları sizlerle birlikte ele alacağız. Hazırsanız başlayalım :)


TypeScript Nedir ?

Öncelikle TypeScript, JavaScript'in ortaya çıkardığı bazı zorluklar sonucu Microsoft tarafından geliştirilmiş, nesne yönelimli açık kaynak bir programlama dilidir. Peki, nedir bu JavaScript'in çıkardığı sorunlar ?

Bildiğiniz üzere, değişken tiplerinin programın çalışma anında belirlendiği dillere dinamik dil diyoruz. Yani dinamik bir dil kullanırken kodlarda hata var mı yok mu test edebilmek için önce projeyi çalıştırmamız gerekiyor. Bu ise kod içerisinde yer alan hataların bulunmasını ve kodların bakımının yapılmasını zorlaştırarak büyük projelerde fazlasıyla dezavantaj yaratıyor. İşte tam da buna çözüm olarak microsoft, 2012 yılında dinamik olan JavaScript yerine, TypeScript diye yeni bir programlama dili getirerek bizi büyük bir yükten kurtardı. TypeScript sayesinde yazdığınız kodların hatalarını projeyi başlatmadan anında görebiliyor ve projenizdeki sorunlara anında müdahale edebiliyorsunuz.


2kcx0vf.jpg


TypeScript dili aslında çok da farklı bir dil sayılmaz, JavaScript'in biraz daha gelişmiş versiyonu diyebiliriz. Hatta çoğu yerde TypeScript için "superset of JavaScript" yani "JavaScript'in üst kümesi" dendiğine şahit olabilirsiniz. Ayrıca, TypeScript yazdığınız kodları sonradan JavaScript kodlarına dönüştürüyor. Bu da JavaScript kullanabildiğiniz her alanda TypeScript'i de kullanabileceğiniz anlamına geliyor.


Gelin birlikte hem JavaScript hem de TypeScript ile yazılmış kod örneklerine bakalım.

thcif51.jpg


sni3plq.jpg



hcs0p2v.png



TypeScript'te ECMAScript (ES) olayı nedir ?

ECMAScript dünyanın en yaygın kullanılan genel amaçlı programlama dillerinden biridir. Boolean, Null, String, Array, forEach(), filter(), map(), Date.Now(), includes() gibi programlama dillerinde kullanılan genel tanımlamaları içerir. Çoğu yazılım dili EcmaScript standartları üzerine inşa edilmiştir. Angular, React, JavaScript, TypeScript, Vue Asp.NET gibi diller ECMAScript kullanır. Fakat kendi içlerinde versiyon değişikliği gösterebilirler. Örneğin JavaScript ES5 sürümü kullanırken, TypeScript ES6 sürümü kullanır.

ES6'nın 5'e göre bazı farklılıkları, import * as moduleName from "...";, class Foo { ... };, () => {...}, let x;, const x; gibi tanımlamalar bulundurmasıdır. Tarayıcıların çoğu ES5'i çok rahat algılarken ES6'yı algılayamayabilirler. Örneğin, Opera tarayıcısında ES5 kullanan JavaScript kodlarını çalıştırabiliyorken ES6 kullanan TypeScript kodlarını çalıştıramazsınız. Fakat TypeScript, JavaScript'e transpile edilebildiği için tarayıcılarda JavaScript kodu olarak kullanılabiliyor.

Bu konuyu daha iyi anlayabilmeniz için sizlere bir tablo hazırladım.

d0alapd.png



hcs0p2v.png



TypeScript ile JavaScript arasındaki farklar nelerdir ?
  • TypeScript statik, JavaScript dinamik veri tiplerine sahiptir.
  • TypeScript nesne yönelimli programlama dili iken (derleyici kullanır), JavaScript betik dildir. (derleyici kullanmayan, hataların yorumlayıcı tarafından bildirildiği dil)
  • TypeScript soyut sınıfları desteklemez, örneğin bir fonksiyonda parametre alırken parametrenin hangi tipte olduğunu dahi tanımlamak zorundasınız. JavaScript'te ise sürekli bu tarz tanımlamalar kullanmanıza gerek yoktur.
  • TypeScript ES6 (ECMAScript 2015) sürümünü kullanırken, JavaScript ES5 (ECMAScript2009) sürümünü kullanır.


makutrc.jpg



hcs0p2v.png


Neden TypeScript ?

Hata Derlemesi Vardır: JavaScript'te kod çalışana dek hata tespiti yapılamaz ve hata varsa tüm kodun gözden geçirilmesi gerekir, bu çok zaman alabilir. TypeScript ise derleme aşamasında hata denetimi sağlar ve sorunlara daha projenin yapım aşamasında çözümler getirir.

Kolay Okunabilir: Derleyicisi bulunmasının ve ES5'e göre daha gelişmiş olan ES6 kütüphanesini kullanmasının sağladığı avantajlar nedeniyle kolay okunabilir ve düzenlenebilir bil dildir.

Nesne Yönelimli Programlama'ya Uygun: TypeScript Class, interface, module vb. özellikleri desteklediği için nesne yönelimli programlama için uygundur.

Statik Veri Tipleri Vardır: JavaScript dilinde verilerin tipi yürütme aşamasında belirlenir. TypeScript'te ise verilerin tanımlamaları yapılarak statik bir veri tiplemesi kullanılır, bu da projenin okunabilmesini ve düzenlenebilmesini kolaylaştırır.


hcs0p2v.png



TypeScript dilinde kod yazabilmek için ne yapmalıyım ? (Kurulum)


Typescript kurulumunun yapılabilmesi için node.js adresinden güncel halde bulunan Node sürümünün indirilip kurulması gerekiyor. Node kurulumuyla beraber bilgisayara npm de kurulmuş bir şekilde olacak (Npm de bir paket yöneticisi olarak tanımlanabilir). Daha sonrasında Windows'ta Komut İstemi ile, Linux ve Mac’te ise terminal ile aşağıdaki yükleme komutunu yazmanız gerekiyor.

Kod:
npm install -g typescript

Yükleme tamamlandıktan sonra inip inmediğini kontrol etmek için tsc –version komutu ile kontrolünü sağlayabilirsiniz.

Bu aşamaları tamamldıktan sonra .ts uzantılı dosya oluşturup TypeScript dilinde proje oluşturabilir. Yine Terminal'de veya Komut İstemi'nde tsc {DOSYA YOLU} komutunu kullanarak TypeScript dosyasını JavaScript dosyasına transpile edebilirsiniz. (örneğin; tsc C:\Users\livcon\Desktop\script.ts)


5fflgwe.png



veya direkt bu linke tıklayarak online olarak TypeScript dilini deneyimleyebilirsiniz.


hcs0p2v.png



TypeScript ile ilgili Son Gelişmeler

Stabil versiyonu daha 5 ay önce (9 Nisan 2021) tarihinde yayınlanan TypeScript'in geleceği ile ilgili Microsoft geçtiğimiz aylarda bir duyuru yaparak, TypeScript konusunda işbirliği yaptığı Google ile ortaklık kurduğunu ve Google'ın, JavaScript kütüphanesinin bir sonraki sürümü olan Angular 2.0'ı geliştirmek için TypeScript'i kullanacağını belirtti. Yani Google bile bu dili kullanmaya başladıysa, ne kadar hızlı popülerleşebileceğini siz tahmin edin :)


3jivwkr.png
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.