Yazılım Geliştirme ve Ön Yüz — Part 2

Salih Baki Sayer
3 min readJan 7, 2021

İlk bölüm web teknolojileri hakkında temel bilgiler , html , css ve javascript çalışma prensipleri ve örnekler barındırıyor.

İlk bölüme buradan ulaşabilirsiniz.

Bu bölümde Typescript’i ele alacağız.

Typescript

Microsoft tarafından javascript üzerine geliştirilen ve javascripte temelde static type özellikleri getiren bir Superset dili.

Typescript derleme hedefi javascripttir. Doğal olarak Typescript kodu derlendiği zaman javascript kodu oluşur.

Typescript tarayıcı üzerinde çalışmaz sadece geliştirme ortamında vardır.

Temel amacı javascript’e type safe bir ortam oluşturarak hataları azaltmak diyebiliriz.

Typescript çok fazla domain modeli içeren , iş kuralı bağımlılığı olan projeler için biçilmiş kaftan. 100 lerce service endpoint kullanan bir önyüz projesinin javascript kullanılarak karşılaşacak sorunlardan bazılarını engelliyor.

Tabi ki her programlama dilinde olduğu gibi nasıl kullanıldığına göre bu fayda değişiklik gösteriyor.

Javascript kodlarının tamamı Typescript ile de çalışıyor. Yani Typescript javascript kadar esnek.

Typescript içerisinde kesinlikle yapılmaması gereken bir hata ise “any” kullanımı.

“any”

Bu typescripte bulunan bir tip ve anlamı herhangi bir şey olabileceği. Yani basitçe Typescript’i o değişken için kapatıyorsunuz ve buda Typescript’in bütün avantajlarını ortadan kaldırıyor.

Typescript aslında bir test aracı. Sadece belirli bir test senaryoları çalıştırmak yerine sizin kodunuzu sınırlandırdığınız tip’lere göre kodunuzu test ediyor.

Bunu kapatmak bir nevi Typescript için hile yapmak demek. Çok nadir durumlarda kullanım alanları var ancak o durumlar ile karşılaşacağınızı pek sanmıyorum.

Kullanımı

Typescript öğrenmek için ilk bakılacak kaynak typescriptlang.org. İkinci olarak Typescript Deep Dive adresine bakabilirsiniz. Detaylı anlatımları burada bulabilirsiniz.

Temel kullanımı ile ilgili bazı örnekler

C# gibi dillerde tanımlanan bir type birebir aynı isme sahip olmadığı süreçte derleyici tarafından aynı olarak algılanmaz, Typescript de ise iki tipin yapısı aynı ise isimlerinin farklı olması farketmez. Eğer bir tip başka bir tipi kapsıyor ise onun yerine kullanılabilir.

C# nomil type sistemi , Typescript structural type sistemi içerir.

Burada Typescript hata vermeyecek.

Utility Tipleri

Bunlar yardımcı tiplerdir. Bu adresten bakabilirsiniz.

Kalıtım

Sınıflar extends kelimesi ile başka bir sınıftan türeyebilir. Aynı şekilde interfaceler de . Ancak bir sınıf sadece tek bir sınıftan türeyebilir.

Bir sınıf implements kelimesi ile bir interface’i uyguladığını gösterebilir. Burada bir sınır bulunmuyor.

Literal ve Union Tipleri

Literal tipleri bir değişkeni belirli değerler ile sınırlandırmak istediğinizde kullandığınız tipler. Enum lara benziyorlar ancak daha esnekler ve tanımlaması çok kolay.

Union tipleri birden fazla tipin & veya | ile bağlanması sonucu oluşuyor. | ile bağlanan tipler bir araya gelip büyürken , & ile bağlanan tiplerin sadece ortak alanlarından oluşan bir tip ortaya çıkar.

Generic Tipler

Generic tipler diğer dillerde ki gibi Class, Interface, Function tanımlarında esneklik sağlıyor.

Koşul Tipleri

Typescript’in bir koşula göre farklı iki tip oluşturma özelliği var. Özellikle Generic Tipler kullanarak çok esnek tipler oluşturabilirsiniz.

Sonuç

Typescript özellikle uygulamanızda farklı tiplerde objeler var ise objeleri kullanırken yada oluştururken hata yapma olasılığınızı ortadan kaldırıyor. Tip seviyesinde bir otomize test mekanizması diyebiliriz.

Şahsen bütün ön yüz projelerimde kullanıyorum size de özellikle belirli bir boyutu aşan projelerde kullanmanızı öneriyorum.

--

--

Salih Baki Sayer

Software developer, loves web dev , kendo (3.dan), books and games.