“TypeScript, bir uygulama ölçeği dahilinde bulunan bir geliştirme için JavaScript.” olarak ifade edilebilir. TypeScript strongly-typed, nesne yönelimine sahip ve derlenebilmesi mümkün açık kaynağa sahip bir programlama dili. Microsoft çalışanı olan ve aynı zamanda C# dilinin tasarımcısı konumunda bulunan Anders Hejlsberg öncülüğünde tasarlandı ve ilk sürümü de 2012 senesinde yayınlandı. TypeScript’in birçok tanımı bulunuyor. Örneğin TypeScript bir araçlar kümesi olarak hem de bir dil olarak tanımlanabilir. İstemci ya da sunucu ortamı dahilinde yer alan ve işlem gören JavaScript programları yazmak amacıyla kullanılabilir. JavaScript’in bütün özellikleri içerisinde bulunan ve ilave özellikler katılmış bir üst kümesi adıyla tanımlanabilir. Kodlanma aşaması kompleks ve büyük olan projelerde de verimliliği arttırdığından söz edilebilir.

Derinlemesine Bir İnceleme

İlk zamanlarda yalnızca browserda çalışan bir programlama dili olacak şekilde tasarlanan Javascript vakit geçtikçe çokça farklı ve tahmin edilmesi zor olan bir noktaya geldi. Javascript'in tasarlandığı ilk vakitlerde büyük ölçekli uygulamaların geliştirilmesi amacıyla kullanılması hiç de planlanmadığı için aslında sınırları dahilinde büyük ölçeğe sahip uygulamalar geliştirirken oldukça yardım eden modüller, classlar, interfaceler vb. yapıların da içinde barındırmıyordu. Bu sebepten ötürü büyük ölçeğe sahip uygulamaları Javascript aracılığıyla geliştirmek ve bu gelişim tamamlandıktan sonra bu uygulamaların bakımının da yapılması çok da basit değil. Bu verilere bakıldığı vakit Javascript programlama dili aynı zamanda dinamik bir dil olarak ifade edilebilir. Dinamik olmasının en büyük faydası ona büyük bir güç katarken en büyük zararı da aynı zamanda gelişim esnasında da ortaya çıkardığı zorluklar.

Kod içerisinde yer alan hataların bulunması ve bu kodun bakımının yapılması zorlaşıyor. Statik bir yapıda bulunan programlama dillerinin gelişim aşamasında sağlamış olduğu faydalar da göz önüne alındığında Javascript doğası gereği de bu becerilerden mahrum kalmış oluyor. Şayet 100-200 satıra sahip bir kod yazılıyorsa bu noksanlıklar birçok önemli gelmese de 10000-20000 satırlık bir uygulama yazılıyorsa emin olunabilir ki bu özellikler sayesinde zaman kaybı yaşamayı kenara bırakın zaman kazanmak son derece mümkün. İşte tam da bu noktada Typescript'in asıl amacı da yukarıda bahsedilen Javascript'in sorunlu yanlarından kurtararak büyük ölçeğe sahip uygulamalar geliştirilmesini sağlamak. Bu sebepten ötürü Typescript asıl olarak bakıldığı vakit Javascript'in bir üst kümesi olarak yer alıyor. Bir bakıma Javascript'in sahip olduklarının daha fazla kadarını bünyesinde barındırıyor. Buna ek olarak, Typescript durağan bir dile sahip olduğu için statik programlama dillerinin içinde barındırdığı becerilere de sahip olunmuş olunuyor.

Typescript kodu düzenlendiği zaman çıktı olarak Javascript kodu üretimi yapılıyor. Yani Typescript içinde kullanılan enum, interface benzeri yapılar geçerli olan bir Javascript kodu olarak çevrilmiş oluyor.  Kodun intizamını almak amacıyla kullanılan bazı yapılar örneğin interfaceler Javascripte dahi çevrilemiyor. O yapılar yalnızca derleme işlemi esnasında Typescript tarafından kullanılıyor. Bu sayede temiz ve düzgün bir Javascript çıktısına ulaşılıyor. İlaveten Typescript yalnızca derleme sırasında vazife aldığı için çalışma vaktinde Typescript'ten kaynaklı oluşabilecek bir performans sıkıntısı da söz konusu olmuyor. Zira Typescript kodu düzenlenip Javascript kodu üretildiği zaman Typescript'in işi burada tamamlanıyor. Bunun yanı sıra dışarıya aktarılan kod tam anlamıyla bir Javascript olduğu için Typescript kullanıldığı için ekstra olarak bir runtime ya da kütüphane vs. kullanılmasına gerek kalmıyor.

Neden TypeScript?

TypeScript ,CoffeScript olsun ya da Dart olsun bu programlama dilleri benzeri diğer denklerinden üstün olan, JavaScript’in gelişmiş bir türevi olarak ifade edilebilir. Bunun yanında CoffeScript ve Dart benzeri diller kendi başlarına olacak şekilde yeni diller ve kendilerine özgü olacak şekilde yürütme ortamlarına gereksinim duyuyorlar. TypeScript'in daha çok popüler bir hal almasının bir başka sebebi de Google Angular 2. AngularJS’nin ortaya çıkan yeni sürümü resmi olacak şekilde JavaScript yerine çeşit denetimi (Type Checking) becerisinden dolayı TypeScript’i de kullanılacağı tarzda uyarlandı.

TypeScript Bileşenleri Nelerdir?

TypeScript’i ana düzlemde üç bileşen üzerinde anlatmak mümkün. Bunlardan birincisi dil. Dil Söz dizimi (syntax), anahtar kelimeler ve ilave açıklamalardan oluşuyor. İkincisi olan TypeScript derleyicisi, (tsc) TypeScript’te yazılan komutları JavaScript karşılığına çeviriyor. Sonuncu olarak da TypeScript dil servisi, bir ifade tamamlama, kod formatlama, özetleme, renklendirme benzeri klasik editör işlemlerinin gerçekleşmesine katkı sağlıyor.

TypeScript ve ECMAScript

typescript-1

ECMAScript, betik dili standarda sahip ve her sene yeni sürümü çıkarılıyor.  2019 senesiyle birlikte 10 sürüme sahip olduğu söylenebilir. TypeScript dili aynı zamanda EcmaScript kalıpları üzerine inşa edilmiş bir konumda bulunuyor ve bu ölçüler dahilinde bulunan özelliklere de ek olarak yeni özellikler katarak yazılım geliştirenler daha sağlıklı bir şekilde JavaScript kodları üretilmesine katkı sağlıyor. TypeScript EcmaScript’in 5 ve 6 sürümlerine de ekstra olacak şekilde yeni özellikler eklenerek oluşturulduğunu belirtmekte fayda var. Tarayıcılar EcmaScript 6. sürüme bütün olarak destek vermiyor. TS destek sağlamayan bölümleri 5. sürüme dönüştürerek işleme koyuyor.

Typescript Kurulumu Nasıl Yapılıyor?

Typescript kurulumunun yapılabilmesi için https://nodejs.org adresinden güncel halde bulunan Node.js sürümünün indirilip kurulması gerekiyor. Node.js kurulumuyla beraber bilgisayara npm de kurulmuş bir şekilde olacak. Npmde bir paket yöneticisi olarak tanımlanabilir. Sıradan bir Linux dağıtımına alışkın olanlar paket yöneticisi kavramına da çok değildir. Paketi yönetenler yani paket yöneticileri, kendi alanları dahilinde yazılımcıların kodlarını paylaştığı için gereksinim duyduğu kodları indirdiği için ve rahat bir şekilde güncellediği platformlar olarak ifade edilebilir. Typescript’i bir paket yöneticisi olan npm vasıtasıyla bilgisayarlara kurulum yapılıyor. Node.js kurulumu tamamlandığına göre de artık Typescript kurulabilir. Komut satırı ara yüzünü de Windows işletim sistemleri dahilinde Başlat >> cmd >> Enter, Linux ve Mac’ta terminal açıp yükleme komutunu yazarak çalıştırmak mümkün.

typescript-2

Görüldüğü gibi kurulum yapılırken npm’de yer alan en güncel sürüm 2.4.2 olarak gözüküyor ve yeniden görüldüğü gibi aslında çok büyük de olmayan bir paket de 74 saniyede yüklenebilir. Milli ve yerli internet servis sağlayıcılarını da tek tek tebrik etmek lazım.

Kurulum tamamlandıktan hemen sonra işlemi doğrulamak için yeniden komut satırının arayüzünde tsc --version komutu çalıştırılsın. Typescript kodu Javascript koduna dönüştürülüp çalıştırıldığı biliniyor İşte tam da bu çevirme işlemine verilen ad “Compilation” ve bu çevirme işlemi gerçekleştiren araca da “Compiler” ismi veriliyor, tsc bölümü de “TypeScript Compiler”i temsil ediyor. tsc –version komutuna karşılık olarak da bir sürüm numarası çıktısı alınıyorsa kurulum tamamlandı demektir.