TypeScript Nedir?
TypeScript, Microsoft çalışanı Anders Hejlsberg (C# tasarımcısı) tarafından tasarlanan açık kaynaklı programlama dilidir. TypeScript hem dil hem de araçlar kümesidir. TypeScript, JavaScript’in ek özellikler almış hali de denilebilir (Şekil 1). İstemci tarafında (client-side) veya sunucu tarafında (server-side) çalışabilen JavaScript uygulamaları geliştirmek için kullanılabilir.
Şekil 1. TypeScript ve JavaScript
Kavramsal olarak JavaScript’i daha kolay ve güvenli bir şekilde yazmamızı sağlayan “sanal editör” olarak da düşünebiliriz. Büyük ve karmaşık kod yapısına sahip projelerde verimliliği arttırır. Uzun JavaScript satırlarını daha az komutla ifade etmemizi sağlar. Nedeni ise JavaScript’in fonksiyonel olmasına karşın TypeScript’in nesne yönelimli olmasıdır. Bunun yanı sıra TypeScript kodunu anlamak daha kolaydır. Eğer JavaScript biliyorsanız bunu TypeScript’de de kolayca kullanabilirsiniz. Yani var olan JavaScript kodlarınızı TypeScript dosyanızın içersine ekleyip derleyebilirsiniz.
JavaScript büyük iş veya projeler için kullanıldığında belirli zorluklar ortaya çıkarmaktadır. C#, Java ve C++ gibi statik olarak derlenen diller, geliştiricinin derleme işlemi sırasında hata denetimi gerçekleştirirken, JavaScript ise çalıştırılıncaya kadar bu hata denetimini gerçekleştiremez. Microsoft, TypeScript ile birlikte derleme aşamasında hata denetimi yapılabilen bir JavaScript sunmayı amaçlamıştır.
TypeScript Özellikleri :
- Typescript, JavaScript'in temel yapı taşlarını benimser. Dolayısıyla, yalnızca TypeScript'i kullanmak için JavaScript'i öğrenmeniz yeterlidir. Tüm TypeScript kodunun çalıştırılması için JavaScript diline dönüştürülmesi gerekir.
- TypeScript, diğer JS kütüphenelerini destekler. Derlenmiş TypeScript, herhangi bir JavaScript kodunda tüketilebilir. TypeScript ile oluşan JavaScript kodu mevcut tüm JavaScript frameworkleri, araçları ve kütüphanelerini yeniden kullanabilir.
- JavaScript, TypeScript’tir. Bunun anlamı .js uzantılı herhangi bir dosya .ts olarak yeniden adlandırabilir ve diğer TypeScript dosyalarıyla derlenebilir.
- TypeScript portatiftir. TypeScript, tarayıcılar, aygıtlar ve işletim sistemleri arasında taşınabilir. JavaScript’in çalıştığı herhangi bir ortamda çalışabilir. TypeScript’in çalışması için sanal makineye (VM) veya özel bir runtime çalışma ortamına ihtiyacı yoktur.
TypeScript ve ECMAScript
ECMAScript, bir script dili standartıdır. Yayınlanmış 6 sürüm bulunmaktadır. Standartın 6. Versiyonuna “Harmony” kod adı verilmiştir. TypeScript, EcmaScript6 standartına sahiptir. Ayrıca temel dil özellikleri ECMAScript5 standartından yani JavaScript’in resmi şartnamesinden uyarlanmıştır (Şekil 2).
Şekil 2. TypeScript'i oluşturan standartlar ve özellikler
Neden TypeScript?
TypeScript, CoffeScript ve Dart programlama dilleri gibi diğer muadillerinden üstün olup, JavaScript’in gelişmiş bir türevidir. Bunun yanı sıra CoffeScript ve Dart gibi diller kendi başlarına yeni dillerdir ve kendilerine özgü yürütme ortamlarına ihtiyaç duyarlar.
TypeScript'in çok popüler hale gelmesinin bir başka nedeni de Google Angular 2’dir. AngularJS’nin yeni sürümü resmi olarak JavaScript yerine tür denetimi (Type Checking) yeteneğinden dolayı TypeScript’i kullanacak şekilde uyarlanmıştır.
TypeScript’in avantajları:
Derleme: JavaScript’i test etmek için çalıştırılması gerekir. Bu, bir hatanın olması durumunda tüm kodu kontrol etmek anlamına gelmektedir. Dolayısıyla, kodda hatalar bulmaya çalışmak için saatler harcamanız gerekir. TypeScript transpiler, hata denetimi özelliğini sağlar. Bu, komut dosyasının çalıştırılmadan önce hataları görmemize yardımcı olur.
Güçlü Statik Tipleme: TypeScript, TLS (TypeScript Dil Servisi) aracılığıyla isteğe bağlı bir statik tipleme ve tür önerme sistemi ile birlikte gelir. TLS, herhangi bir tip tanımlanmamış değişkeni aldığı değere göre anlamlandırabilir
TypeScript, sınıflar, arayüzler gibi Nesneye Dayalı Programlama kavramlarını destekler.
TypeScript Bileşenleri
TypeScript üç bileşene sahiptir (Şekil 3):
Şekil 3. TypeScript'i oluşturan bileşenler
Dil: Sözdizimi(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.
Kaynakça:
- [1] typescriptlang.org
- [2] en.wikipedia.org
- [3] TypeScript Tutorial Book
- [4] Tony de Araujo - TypeScript in Plain Language Book