TypeScript
- Okunuşu
- taypskript
Kısaca
TypeScript, JavaScript üzerine statik tipler ekleyerek birçok hatayı kod çalışmadan yakalayan ve düz JavaScript'e derlenen bir programlama dilidir.
TypeScript nedir?
TypeScript, tip açıklamaları (type annotation) eklenmiş JavaScript'tir. Bir değişkenin string tuttuğunu, bir fonksiyonun number döndürdüğünü ya da bir nesnenin belirli özelliklere sahip olması gerektiğini bildirebilirsiniz; TypeScript derleyicisi de kodunuzun bu kurallara uyup uymadığını denetler. Geçerli hemen her JavaScript aynı zamanda geçerli bir TypeScript'tir; dolayısıyla projeler ona kademeli olarak geçebilir.
Tipler yalnızca geliştirme sırasında vardır. Derleyici tsc ya da bir derleme aracı onları ayıklar ve tarayıcıların ile sunucuların çalıştırabileceği sıradan JavaScript üretir. Deno, Bun ve Node.js'in yeni sürümleri gibi bazı çalışma ortamları, tipleri anında kaldırarak TypeScript dosyalarını doğrudan çalıştırabilir.
Tipleri taşınan kolilerin üzerindeki etiketler gibi düşünebilirsiniz: içindekini değiştirmezler ama mutfak tabaklarının banyoya gittiğini hemen haber verirler. Aynı denetim; otomatik tamamlama, güvenli yeniden adlandırma ve satır içi belgelendirme gibi editör özelliklerinin de temelidir ve TypeScript'in büyük kod tabanlarında sevilmesinin başlıca nedenlerinden biridir.
Sık yapılan bir yanılgı, TypeScript'in veriyi program çalışırken denetlediğini sanmaktır. Öyle değildir: derlemeden sonra tipler ortadan kalkar; bu yüzden kullanıcılardan ya da API'lerden gelen verinin yine kod içinde, çoğunlukla bir doğrulama kütüphanesiyle doğrulanması gerekir.
Önemli noktalar
- TypeScript, isteğe bağlı statik tiplerle güçlendirilmiş JavaScript'tir.
- Tip hataları kod çalışmadan önce bildirilir.
- Tipler derleme sırasında kaldırılır ve geriye düz JavaScript kalır.
- Editörlerde daha iyi otomatik tamamlama ve yeniden düzenleme (refactoring) sağlar.
- Tipler, dışarıdan gelen veriyi çalışma zamanında doğrulamaz.
Örnek
// Describe the shape of a user object
interface User {
id: number;
name: string;
}
function greet(user: User): string {
return `Hello, ${user.name}!`;
}
greet({ id: 1, name: "Ada" }); // OK
greet({ id: 2 }); // Error: property 'name' is missingSık sorulan sorular
TypeScript, JavaScript'ten daha mı iyidir?
Hiçbiri her durumda daha iyi değildir. TypeScript, büyük veya uzun ömürlü projelerde karşılığını veren güvenlik ve araçlar sunar; düz JavaScript ise küçük betikler ve prototipler için daha hızlı olabilir.
Tarayıcılar TypeScript çalıştırır mı?
Hayır. Tarayıcılar yalnızca JavaScript çalıştırır; bu yüzden TypeScript kodu tarayıcıya gönderilmeden önce derlenir ya da tiplerinden arındırılır.
TypeScript'te interface ile type arasındaki fark nedir?
İkisi de verinin şeklini tanımlar. Bir interface genişletilebilir ve farklı bildirimler arasında birleştirilebilir; bir type takma adı ise birleşim (union), demet (tuple) ve diğer kombinasyonları da ifade edebilir. Düz nesne şekilleri için ikisi de işe yarar.
Sık karşılaştırılanlar
İlgili sayfalar
- JavaScriptWeb Geliştirme, s. 25JavaScript, web tarayıcılarında sayfaları etkileşimli hale getiren ve Node.js gibi çalışma ortamlarıyla sunucularda da çalışan programlama dilidir.
- DeğişkenProgramlamanın Temelleri, s. 10Değişken, bir programda sayı ya da metin gibi bir değeri tutan ve kodun çalışırken okuyup değiştirebildiği, adlandırılmış bir depolama alanıdır.
- FonksiyonProgramlamanın Temelleri, s. 20Fonksiyon, belirli bir işi yapan, isteğe bağlı olarak parametre denen girdiler alıp sonuç döndürebilen, adlandırılmış ve yeniden kullanılabilir kod bloğudur.
- OOPProgramlamanın Temelleri, s. 41OOP, yani nesne yönelimli programlama, kodu ilişkili verileri onlar üzerinde işlem yapan fonksiyonlarla birleştiren nesneler etrafında düzenleme yöntemidir.
- FrameworkProgramlamanın Temelleri, s. 22Framework, bir uygulamanın yapısını sağlayan, yeniden kullanılabilir kod, araç ve kural temelidir; geliştiriciler yalnızca kendi mantıklarını doldurur.
- EnumProgramlamanın Temelleri, s. 18Enum, bir siparişin olası durumları gibi sabit ve adlandırılmış bir değerler kümesi tanımlayan bir veri türüdür; kod bu kümenin dışında bir değer kullanamaz.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin