TypeScript Nedir?

TypeScript gittikçe popülerliği artan ve yaygınlaşan açık kaynak özgür bir programlama dili. Bir çok mimariye ve yapıya zemin hazırlayan oldukça esnek bir kullanım imkanı sunuyor.

Javascript ve NodeJS ile birlikte sunucu taraflı uygulamalarda, Electron.js ile birlikte masaüstü uygulamalarda, çeşitli kütüphaneler sayesinde hibrid mobil uygulamalarda boy göstermektedir.

JavaScript’in yapısal eksikliklerinin giderildiği bir içeriğe sahiptir. Javascript’de özellikle, nesne tabanlı dillerin sağladığı tip kontrolü, sınıflar gibi yapılar bulunmuyordu, dinamik olmasından dolayı derleme aşaması yoktu ve hata kontrolü zor yapılıyordu. TypeScript bu eksikleri gidermek ve JavaScript’i büyük projelerde daha etkili şekilde kullanmak için tasarlanmış bir programlama dili olarak ortaya çıktı.

TypeScript Figure

“TypeScript, uygulama ölçeğinde geliştirme için JavaScript.” olarak tanımlanmaktadır. TypeScript strongly-typed, nesne yönelimli ve derlenebilir açık kaynaklı bir programlama dilidir. Microsoft çalışanı ve C# dilinin tasarımcısı olan Anders Hejlsberg tarafından tasarlanmış, ilk sürümü 2012 yılında yayınlanmıştır. TypeScript’i hem bir dil hem de bir araçlar kümesi olarak tanımlanabilir. İstemci veya sunucu ortamında çalışabilen JavaScript programları yazmak için kullanılabilir. JavaScript’in tüm özelliklerini içinde barındıran ve ek özellikler eklenmiş bir üst kümesi olarak tanımlanmaktadır. Büyük ve kodlanma aşaması karmaşık olan projelerde verimliliği arttırır.

Typescript’in Özellikleri

  • Javascript’de bir TypeScript’dir! TypeScript yazarken aslında Javascript yazarsınız. TS’de yazılan kodlar derlenirken JS dilindeki karşılığına dönüştürülür, çıktı olarak JS kodu verir ve JS kodu çalıştırılır. JS için geçerli olan tüm özellikler TS içinde geçerlidir. TS kodu yazabilmek için JS bilmeniz işin çok büyük bir oranına hakim olmanızı sağlayacaktır. TypeScript, JavaScript’in genişletilmiş bir versiyonudur. Her JS kodu bir TS kodudur. Ancak TS kodu derlenip çalıştırılmadığı sürece JS kodu değildir.
  • Tüm JS kütüphaneleri kullanabilir! JS’ye dair ne varsa TS için de geçerlidir! Tüm JS kütüphaneleri TS üzerinde de kullanılabilir. TS olarak yazılan bütün kodların JS çıktısı, bütün JS frameworklerini, araçlarını ve kütüphanelerini kullanabilir.
  • TS taşınabilirlik, portatiftir! TypeScript platform-serbest bir dildir ve farklı tarayıcılarda, cihazlarda, işletim sistemlerinde çalışabilir. JavaScript’in çalıştığı herhangi bir ortamda çalışabilir. Muadillerinden(CoffeScript,Dart vb) farklı olarak, Yazılan kodlar JS koduna dönüştürüldüğü ve işlemler JS kodu üzerinden yürütüldüğü için TypeScript’in yürütülmesi için özel bir sanal makineye veya özel bir çalışma-yürütme ortamına ihtiyacı yoktur.

TypeScript and ECMAScript

Neden TypeScript Öğrenmeliyim?

  • Tam anlamıyla nesne yönelimli programlama dilidir. TypeScript nesne yönelimli anlayışa uygundur. Sınıflar, arayüzler, modüller, miras(inheritance) vb. özellikleri destekler.
  • Kolay Okunabilir: JS koduna göre sağladığı avantajlar nedeniyle kolay okunabilir ve düzenlenebilir bir dildir.
  • Güçlü Statik Tipler: JS dilinde statik veri tiplemesi yoktur, verilerin tipi dinamik olarak yürütme aşamasında belirlenir. TS’de ise isteğe bağlı olarak veri tanımlaması yapılabilir.
  • Derleme: JS yorumlamalı(interpreted) bir dildir, derleme aşaması yoktur, bu nedenle kod çalışana dek hata tespiti yapılamaz ve hata varsa tüm kodun gözden geçirilmesi gerekir ve bu çok zaman alabilir. TypeScript dönüştürücüsü derleme aşamasında hata denetimi sağlar ve bu soruna çözüm getirir.
  • TLS(TypeScript Dil Servisi): Editörlerde kullanılması için ifade tamamlama, kod biçimlendirme, renklendirme vb. gibi tipik düzenleyici işlemlerini destekler.

TypeScript Components

TypeScript Bileşenleri

Temel olarak üç ana bileşene sahiptir.

  • Dil : Sözdizilimi (syntax), anahtar sözcükler (keywords) ve ek açıklamalardan oluşur.
  • TypeScript Derleyicisi: TypeScript Derleyicisi (tsc), TypeScript’te yazılmış komutları JavaScript karşılığına çevirir.
  • TypeScript Dil Servisi: Dil servisi, ifade tamamlama, kod formatlama, özetleme, renklendirme gibi tipik editör işlemlerinin gerçekleşmesini sağlar.

TypeScript ve JavaScript Farkları

  • TS tam anlamıyla bir programlama dilidir, JS betik dilidir.
  • TS statik veri tiplemesine sahiptir, JS dinamik olarak verileri tanır.
  • TS opsiyonel olarak parametreli fonksiyonları destekler ancak JS desteklemez.
  • TS ile JS olarak tasarlanmış büyük ve karmaşık projelerin geliştirme aşaması çok daha kısa sürelere indirilebilir.
  • JS kodu derlenmediği için hata denetimi yapılamaz ancak TS kodunda derleme yapıldığı için bu aşama zaman alır. Tüm geliştirme aşaması göze alındığında sorun teşkil edecek bir dezavantaj değildir.
  • TS soyut sınıfları desteklemez.

TypeScript ve ECMAScript

ECMAScript, betik dili standartıdır ve her yıl yeni sürümü çıkarılmaktadır. 2019 yılı itibariyle 10 sürümü bulunmaktadır. TypeScript dili EcmaScript standartları üzerine inşa edilmiştir ve bu standartlarda yer alan özelliklere ek özellikler katarak yazılım geliştiricileri daha sağlıklı şekilde JavaScript kodları üretmesini sağlamaktadır. TypeScript EcmaScript’in 5 ve 6 versiyonlarınaa ekstra özellikler eklenerek oluşturulmuştur. Tarayıcılar EcmaScript 6. versiyona tam olarak destek verememektedir. TS desteklenmeyen kısımları 5. versiyona dönüştürerek işleme sokar.

 

Typescript üzerine hızlı ve kolay pratik egzersizler yapabilmek için Typescript Playground‘u kullanabilirsiniz.