Web’in yeni şekillenmeye başladığı 90’lı yılların başında etkileşimli web sayfalarına talep vardı. İnsanlar statik verileri göstermekten fazlasını yapan web siteleri istiyordu. JavaScript bu arzudan doğdu.
JavaScript başlangıçta Mocha olarak biliniyordu . Daha sonra LiveScript olarak yeniden adlandırıldı ve sonunda JavaScript oldu . Biraz kafa karıştırıcı, biliyorum 😄
Mocha => Livescript => Javascript
JavaScript, 1995 yılında Netscape Communications’ta çalışırken Brendan Eich adlı bir geliştirici tarafından oluşturuldu .
JavaScript, web geliştirme için kullanılan ilk dil olmasa da, kullanım kolaylığı ve web geliştiricilerinin web sitelerine animasyonlar, etkileşimli formlar ve dinamik içerik gibi özellikler eklemesine olanak sağlaması nedeniyle hızla popülerlik kazandı.
Takip eden yıllarda JavaScript, yeni özellikler ekleyerek, hataları düzelterek ve dili daha güçlü hale getirerek gelişmeye ve gelişmeye devam etti.
Günümüze hızlı bir şekilde ilerlersek, JavaScript’in etkisi web geliştirmenin çok ötesine uzanıyor. Çok yönlülüğü mobil uygulamalara, sunucu tarafı uygulamalara ve hatta masaüstü yazılımlara kadar uzanır.
TypeScript, JavaScript’in modernleştirilmiş bir sürümüdür . Statik yazmayı ve daha fazlasını içerir. Bu, JavaScript’in tamamen yeniden yazılması değildi; basitçe kendi temelleri üzerine inşa edildi ve geliştiricilere daha yapılandırılmış bir geliştirme süreci seçeneği sundu.
TypeScript’in tarihi, 2012 yılında Microsoft’un onu geliştirmede öncülük etmesiyle başladı. TypeScript, JavaScript’e statik yazma özelliği ekleyerek kodun sürdürülebilirliğini ve ölçeklenebilirliğini geliştirmenin yanı sıra geliştirici üretkenliğini de artırmak için tasarlandı. O zamandan bu yana, özellikle statik yazmanın avantajlarının en iyi olduğu büyük projelerde büyük ilgi gördü.
Bugün TypeScript, web geliştirme teknolojilerinin ne kadar sürekli geliştiğinin ve uyum sağladığının bir örneği olarak duruyor.
TypeScript’i neden kullanmalıyım?
Hataların Erken Yakalanmasına Yardımcı Olur: TypeScript, kodunuzu çalıştırmadan önce hatalara karşı kontrol eder. Bu, inşaata başlamadan önce bir yapı mühendisinin planınızı kusurlara karşı kontrol etmesi gibidir.
Koda Yapı Ekler: TypeScript ile farklı veri türlerini (örneğin sayı, dize veya özel tür) tanımlayabilir ve bu veri türlerinin nasıl kullanıldığını kontrol edebilirsiniz. Bu, kodunuzu daha yapılandırılmış ve okunabilir hale getirmenize yardımcı olur.
İşbirliğini Geliştirir: Birden fazla kişi bir proje üzerinde birlikte çalıştığında, TypeScript okunabilirliği ve tutarlılığı arttırdığı için onların birbirlerinin kodunu daha iyi anlamalarına yardımcı olur.
Üretkenliği Artırır: TypeScript, kodlama süresini azaltabilen ve hataları en aza indirebilen otomatik kod tamamlama ve gelişmiş araç desteği gibi yerleşik özelliklere sahiptir.
Sürdürülebilirlik: Projelerinizin boyutu arttıkça hepsini yönetmek zorlaşır. TypeScript tam da burada devreye giriyor. Arayüzler ve tür kontrolü gibi özellikler sunarak kodunuzun güncellenmesini ve zaman içinde güncellenmesini kolaylaştırır.
Kod Okunabilirliğini ve Bakımını Artırır: TypeScript’in sağlam yazımına ek olarak, kodun okunmasını ve anlaşılmasını kolaylaştıran arayüzler ve tür açıklamaları gibi özelliklere de sahiptir. Birisi kodunuzu okurken, her değişkenin veya işlevin döndürdüğü ve beklediği veri türlerini kolayca görebilecek. Bu, zaman içinde kod tabanınızın bakımını ve anlaşılmasını kolaylaştırır; bu da mevcut kodu değiştirirken hata yapma veya kasıtsız değişiklikler yapma riskini azaltır.
TypeScript’teki Türler
Number:
Bu tür 1, 2 ve 3 gibi tam sayıları temsil etmek için kullanılır. Hem tam sayıları (kayan noktalı sayılar) hem de ondalık noktalı sayıları içerir.
let myNumber: number = 5;
String:
Bu tür, “hello” veya “TypeScript” gibi metni veya metin dizelerini temsil etmek için kullanılır.
let myString: string = "hello";
Boolean:
Bu tür, doğru veya yanlış olabilen mantıksal değerleri temsil etmek için kullanılır.
let isDone: boolean = false;
Array:
Alan aynı türdeki verilerin koleksiyonudur. Sayılardan oluşan bir alanınız, dizelerden oluşan bir alanınız veya başka türden bir alanınız olabilir.
let myArray: number[] = [1, 2, 3, 4, 5];
Tuple: Tuple, belirli sayıda öğenin türde olduğu bilinen ancak aynı olması gerekmeyen bir diziyi temsil eden bir ifadedir.
let myTuple: [string, number] = ["hello", 10];
Herhangi:
Herhangi bir tür, herhangi bir değer türünü temsil eden soyut bir türdür. Değer türü bilinmediğinde veya türü olmayan JavaScript koduyla uğraşırken yaygın olarak kullanılır.
let myVariable: any = "hello";
Void:
void türü, bir türün yokluğunu temsil eder. Genellikle değer döndürmeyen işlevler için dönüş değeri türü olarak kullanılır.
function sayHello(): void { console.log("Hello!"); }
Object:
Nesne türü herhangi bir ilkel türün temsilidir. Bu, bir dizi, bir işlev, hatta NULL veya tanımsız olabileceği anlamına gelir.
let myObject: object = { name: "John", age: 30 };
Basit bir toplam örneğiyle anlayalım,
Öncelikle toplam fonksiyonumuzu tanımlayalım. TypeScript’te, tür güvenliğini garanti altına almak ve kodun okunabilirliğini geliştirmek için işlev bağımsız değişkenlerinin türünü ve dönüş değerlerini belirtebilirsiniz.
Bunu nasıl yapabileceğimize bakalım:

Yukarıdaki kod parçacığında, a ve b olmak üzere iki argüman alan toplam adında bir fonksiyon tanımladık. Bu argümanların her ikisi de sayı türleridir. Parametre listesinden sonra gelen: sayı, bu fonksiyonun bir sayı değeri döndürdüğünü belirtir. Bu fonksiyonun içinde sadece a ve b’yi toplayıp döndürüyoruz.
Artık toplam fonksiyonumuzu tanımladığımıza göre, onu çalışırken görelim.
Yukarıdaki örnekte toplam fonksiyonunu 5 ve 3 argümanla çağırdık. Bağımsız değişkenlerin türü TypeScript’teki işlev imzasından çıkarılır, dolayısıyla bunları açıkça belirtmemize gerek yoktur.
Fonksiyon bu iki sayının toplamının sonucunu döndürür ve bunu konsolumuza kaydederiz.
Özetle
Özetlemek gerekirse TypeScript, JavaScript’in dinamik doğası ile yapılandırılmış, hataya dayanıklı kod gereksinimi arasındaki boşluğu doldurur. JavaScript’in Mocha olarak ilk günlerinden şu anki her yerde bulunmasına kadar TypeScript, geliştiricileri daha üretken, kod bakımı yapılabilir ve işbirlikçi hale getirdi. TypeScript, statik yazma ve gelişmiş araçlar sunarak geliştiricilerin tüm platformlarda daha sağlam uygulamalar oluşturmasına olanak tanır ve bu da onu web geliştirmede ezber bozan bir hale getirir.