Ana içeriğe atla

TypeScript Nedir?

Konuya ufak bir örnekle başlayacağım...
C# programlama dilinde programlama yapıyorsanız yazdığınız kodların CLR aracılığıyla makine diline veya Java dilinde JVM aracılığıyla makine koduna dönüştürüldüğünü ve böyle çalıştırıldığını biliyorsunuzdur. Hemen hemen tüm browserlar (tarayıcılar) programlama dili olarak sadece JavaScript çalıştırabilecek ve bu dili anlayabilecek kapasitededir. Yani bir anlamda JavaScript web dünyasının makine kodudur diyebiliriz. Typescript kodları da derlenerek JavaScript kodlarında dönüştürülür ve web projelerinde bu kodlar çalıştırılır. Yani tarayıcılar Typescript kodunu anlamadığı için JavaScript'e dönüştürülmüş kodları çalıştırabilirler. (Geleceğin teknolojilerinden bir tanesi de Typescript programlama dilini anlayabilen derleyiciler olabilir)

JavaScript altyapı olarak nesne yönelimli bir dil olsa da günümüzde nesne yönelimli programlama farklı bir seviyeye gelmiş durumda ve bu açıdan JavaScript ile nesne yönelimli kalıpları uygulamak çok zor ve zahmetli bir süreçtir. Aynı zamanda JavaScript programlama dilinde değişken türlerinin tanımlanamıyor olması ve özellikle nesne yönelimli programlama mantığının encapsulation, interface, abstraction, polimorfizm ve başka kuralının uygulanamıyor olması günümüz için JavaScript teknolojilerinin en büyük problemlerinden bir tanesidir. (var türünde bir değişken tanımlamak işimizi her zaman kolaylaştırıyor diye düşünüyorsanız da henüz çok büyük projeler geliştirmemişsiniz demektir.... )


İşte JavaScript dünyasının bu gibi problemlerinin çözümü için TypeScript programlama dili ortaya çıkmıştır. Typescript programlama dili özellikle Angular teknolojisi tarafından tercih edilen programlama dili olduktan sonra, açık kaynak kodlu bir proje olduğu için de yaygınlığı ve kullanım oranı da giderek artmaktadır. 

"TypeScript Nedir?" sorusunun yanıtı ise TypeScript web uygulamaları geliştirmemizi sağlayan bir programalama dilidir ve JavaScript dünyasının değişken türleri tanımlama, kodlamadaki modüler yapı ve nesne yönelimli programlama eksiklerini gideren bir programlama dilidir. (Bazı yerlerde programlama dili olmadığına rastlayabilirsiniz. Giriş konusunda bahsettiğim gibi çalışma mantığı C#, Java, Python ve b. dillerle aynıdır. Sadece çıktısı JavaScript kodudur. Aksini iddia etmek bu dillerin de programlama dili olmadığını söylemekle aynı şeydir)

Aşağıdaki resimde TypeScript ve diğer JavaScript dillerinin karşılaştırması yer almaktadır. Gelişen bir teknoloji olan TypeScript eksiklerini giderme konusunda da başarılıdır. Bunun temel nedeni ise geliştirici kitlesinin son zamanlarda katlanarak artması ve Microsoftun da bu doğrultuda yatırımı artırmasıdır.


TypeScipt bir Microsoft teknolojisi olduğu için kodlama yapısı da C# programlama diline çok yakındır. Ama nesne mantığının uygulanmasında Java programlama dilinin kodlama kalıpları kullanılmıştır(Örneğin extends, implements gibi kelimeler)

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 üç bileşene sahiptir
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.

Yorumlar

Bu blogdaki popüler yayınlar

TypeScript Veri Tipleri - Number

Number veri tipi TypeScript programlama dilinde tüm sayısal verileri tanımlayabileceğimiz veri türüdür ve kayan noktalı sayılar, ikilik, sekizlik ve on altılık sayı sistemleri ile desteklenmiştir. Tek farkı ise bu veri türlerinin hepsinin tek değişken türünde birleştirilmesidir. Bu özelliği ile de TypeScript bir çok programlama dilinden pozitif anlamda ayrışmaktadır. Aslında bu özelliği ile aynı zamanda JavaScript kökeninden de uzaklaşamamışdır diyebiliriz. Number veri tipini daha detaylı incelemek için örnek bir program yazalım. Yazdığımız kodları TypeScript derleyicisi ile JavaScript kodlarına dönüştürüldüğünde nasıl bir çıktı aldığımızı ve aynı zamanda da bu çıktıyı NodeJS aracılığı ile çalıştırarak nasıl bir çıktı aldığımızı da inceleyelim. Böylece number olarak tanımladığımız değişkenlerin arka tarafta nasıl bir süreçten geçtiğini detaylı incelemiş olacağız. Örnek uygulamamız için kayan noktalı sayı, tam sayı, ikilik, sekizlik ve onaltılık sayı sistemi ile değişken tanımla...

TypeScript ve JavaScript Arasındaki İlişki

TypeScript ile JavaScript arasındaki ilişkiyi tanımlamak için seçilebilecek en iyi tanımlamalardan biri "Typescript JavaScripti extend eden ve program çıktısı yine JavaScript olan nesne yönelimli programlama dilidir." olurdu. İlk cümleden de gördüğünüz gibi TypeScripti tanımlayan bir cümlede 2 defa JavaScript sözünü kullanmak zorunda kaldık. Bu makalemizde de temel hatlarıyla TypeScript ile JavaScript arasındaki ilişkiyi inceleyecek ve iyi bir Typescript geliştiricisi olabilmeniz için ne kadar JavaScript bilmeniz ve ne kadarını kullanmanız gerektiğine değineceğiz. TypeScript ile JavaScript arasındaki ilişkiyi makaleye giriş yaparken verdiğim tanım esasında bir kaç açıdan inceleyeceğiz. Bunlardan birincisi TypeScript'in JavaScripti de kapsayan bir dil olması, ikincisi TypeScript derleyicisi aracılığıyla JavaScript kodlarına dönüşme sürecidir. Makalenin sonuna doğru ise TypeScript içinde JavaScript yazabiliyor olmamız yazmamız gerektiği anlamına gelmediğini detaylarıyl...

TypeScript 1.3 Sürüm Yenilikleri

TypeScript JavaScript programlama dilindeki nesne yönelimli programlama eksikliğini gidermek için Microsoft tarafından geliştirilmiş bir programlama dilidir. Nesne yönelimli programlamada en önemli kavramlardan bir tanesi de Encapsulation kavramıdır ve TypeScript 1.3 Sürümü ile bu mantık daha da kuvvetlendirilmiştir. TypeScript 1.3 Sürümü ile eklenen protected kavramı diğer progrmalama dilleri C++, C# ve Java'daki benzer mantığa sahiptir ve amaç Encapsulation mantığını kuvvetlendirmektir. Bu bloğun amacı TypeScript üzerine yoğunlaşmak olduğu için protected ve Encapsulation konuları üzerinde fazla durmayacağım. Ama TypeScript programlama dilini çok iyi kullanmak istiyorsanız nesne yönelimli programlamaya da hakim olmanız gerekiyor. protected kullanımı ile ilgili örnekle devam edersek kullanımla ilgili kafanızda altyapı oluşacaktır. Diğer programlama dillerinde protected kavramını etkin kullanıyorsanız zaten konuyu hemen anlayacaksınız. Zaten protected gibi bir nesne yöneli...