TypeScript Dersleri

TypeScript’te İleri Düzey Tipler

eminbasbayan

eminbasbayan

4 dk okuma
TypeScript’te İleri Düzey Tipler
🔍 Büyütmek için tıklayın

TypeScript’in sunduğu tip sistemi, sadece temel veri türleriyle sınırlı değildir. Daha karmaşık, esnek ve gerçek hayat senaryolarını desteklemek için gelişmiş tip özellikleri de sunar. Bu özellikler sayesinde daha güvenli ve anlaşılır kodlar yazmak mümkün olur.

Bu makalede, TypeScript’in ileri düzey tiplerinden olan union types, intersection types, literal types, nullable types ve optional erişim operatörlerini açıklayacağız.

Union Types (Birden Fazla Tip Kullanımı)

Union type, bir değişkenin birden fazla türden birine sahip olmasını sağlar. Örneğin, bir değişken hem string hem de number olabiliyorsa, bu durumda union type kullanılır.

let sonuc: number | string; sonuc = 90; sonuc = "henüz açıklanmadı";

Bu kullanım, özellikle API'den gelen verilerde ya da esnek girişlerde çok işe yarar.

Intersection Types (Tip Kesişimi)

Intersection types, birden fazla tipin birleşimiyle oluşan yeni bir tip tanımlar. Bu yeni tip, birleşen tüm tiplerin özelliklerini taşımalıdır.

type Draggable = { surukle: () => void; }; type Resizable = { yenidenBoyutlandir: () => void; }; type UIElement = Draggable & Resizable; let pencere: UIElement = { surukle() { console.log("Sürükleniyor"); }, yenidenBoyutlandir() { console.log("Boyut değiştiriliyor"); } };

Intersection tipler, özellikle bir nesnenin birden fazla davranışı aynı anda taşıması gereken durumlarda kullanılır.

Literal Types (Sabit Değer Tipleri)

Literal types, bir değişkenin sadece belirli sabit değerleri alabilmesini sağlar. Bu, özellikle sınırlı sayıda geçerli seçenek olduğunda kullanışlıdır.

let durum: "basladi" | "beklemede" | "bitti"; durum = "basladi"; // geçerli durum = "iptal"; // hata: 'iptal' literal tipler arasında değil

Bu sayede hatalı değerlerin atanması engellenmiş olur.

Nullable Types (null ve undefined ile Çalışmak)

Varsayılan olarak TypeScript, null ve undefined gibi değerlerin bir değişkene atanmasına izin vermez. Ancak bazı durumlarda verinin olmayabileceği bilinçli olarak belirtilmek istenebilir. Bu gibi durumlarda nullable types kullanılır.

let isim: string | null = null; isim = "Ali";

Bu kullanım, değişkenin null olabileceğini açıkça ifade eder.

strictNullChecks Ayarı

TypeScript’te strictNullChecks ayarı açık olduğunda, bir değişkenin null ya da undefined olup olmadığı kontrol edilmeden kullanılmasına izin verilmez. Bu da potansiyel hataları erken aşamada yakalamayı sağlar.

Ayar, tsconfig.json dosyasında şu şekilde etkinleştirilir:

"strictNullChecks": true

Bu ayar aktifken, TypeScript seni olası null ve undefined hatalarına karşı uyarır.

Optional Chaining (?.)

Optional chaining operatörü, bir nesne veya değişkenin tanımlı olup olmadığını kontrol ederek ona ulaşmanı sağlar. Tanımsız (undefined) olan bir nesneye doğrudan erişmeye çalışmak normalde hataya yol açar. ?. sayesinde bu engellenir.

let musteri = { adres: { sehir: "İzmir" } }; console.log(musteri.adres?.sehir); // varsa sehir'i gösterir, yoksa hata vermez

Bu özellik sayesinde uygulamalar daha stabil çalışır.

Optional Element Access (?.[index])

Bir diziye erişirken, dizinin boş veya undefined olabileceği durumlarda ?.[index] operatörü kullanılır.

let kullanicilar: string[] | undefined; console.log(kullanicilar?.[0]); // varsa ilk kullanıcıyı verir, yoksa hata vermez

Bu da dizilerle çalışırken hata olasılığını azaltır.

Optional Call Operator (?.())

Bir fonksiyon tanımlanmışsa çalıştır, tanımlanmamışsa hata verme diyorsak, optional call operator kullanılır. Bu, özellikle dışardan gelen fonksiyon referanslarında işe yarar.

let logla: ((mesaj: string) => void) | undefined; logla?.("Sistem başladı"); // tanımlıysa çalıştırır, değilse geçer

Bu operatör, uygulamanın durmasını engelleyerek esnekliğini artırır.

Sonuç

TypeScript’in ileri düzey tip özellikleri sayesinde daha esnek, daha güvenli ve daha bakımı kolay uygulamalar geliştirmek mümkündür. Union types ile birden fazla durumu kontrol altında tutabilir, intersection types ile tipleri birleştirebilir, literal types ile belirli değerleri zorunlu kılabilir ve nullable types ile eksik verilerle doğru şekilde çalışabilirsin.

Ayrıca optional chaining ve onun çeşitleri, kodun daha kısa ve hataya dayanıklı yazılmasını sağlar. Bu özellikler, özellikle gerçek dünya uygulamalarında karşılaşılan belirsiz durumları daha sağlam şekilde yönetmek için oldukça önemlidir.

Bu temel ve ileri düzey bilgilerle, TypeScript’in tip sistemine çok daha hâkim bir şekilde projelerini geliştirmeye devam edebilirsin.

Etiketler

#Eğitimler#TypeScript Dersleri

İlgili Yazılar

Bu konuyla ilgili diğer yazılarımızı da inceleyebilirsiniz

TypeScript’e Giriş: Nedir, Neden Kullanılır ve JavaScript’ten Farkı Ne?
TypeScript Dersleri

TypeScript’e Giriş: Nedir, Neden Kullanılır ve JavaScript’ten Farkı Ne?

Yazılım dünyasında JavaScript, özellikle web geliştirme alanında en çok kullanılan programlama dillerinden biridir. Ancak JavaScript her ne kadar esnek ve güçlü bir dil olsa da, bu esnekliği bazen hatalara davetiye çıkarabilir. İşte bu noktada devreye **TypeScript**</STRO

3 dk
TypeScript Kurulum ve Geliştirme Ortamı Rehberi
TypeScript Dersleri

TypeScript Kurulum ve Geliştirme Ortamı Rehberi

Programlamaya başlamak, yalnızca kod yazmakla değil, aynı zamanda doğru araçları kullanmakla da ilgilidir. Özellikle modern dillerden biri olan **TypeScript** ile çalışmak istiyorsan, öncelikle bilgisayarında bir geliştirme ortamı hazırlaman gerekir. Bu y

3 dk
TypeScript Derleyici ve Ayarları
TypeScript Dersleri

TypeScript Derleyici ve Ayarları

TypeScript ile yazılım geliştirmeye başladığında, sadece kod yazmak yetmez. Kodlarının **nasıl çalıştırılacağını, nasıl derleneceğini ve nasıl düzenli tutulacağını** da bilmen gerekir. İşte burada devreye **TypeScript derleyicisi (compiler)**</e

3 dk
TypeScript’te Debugging (Hata Ayıklama)
TypeScript Dersleri

TypeScript’te Debugging (Hata Ayıklama)

Kod yazmak bir şeydir, yazdığın kodun neden çalışmadığını bulmak başka bir şeydir. Yazılım geliştirmenin en kritik aşamalarından biri de **debugging**, yani **hata ayıklama** sürecidir. TypeScript ile çalışırken hataları fark etmek

3 dk
TypeScript’te Temel Veri Tipleri ve Kullanımları
TypeScript Dersleri

TypeScript’te Temel Veri Tipleri ve Kullanımları

TypeScript, JavaScript’in daha güvenli ve kurallı bir versiyonudur. TypeScript kullanmanın en büyük avantajlarından biri, değişkenlerin türlerini belirleyerek yazılımcıya hataları erken aşamada göstermesidir. Bu sayede daha sağlam ve anlaşılır kodlar yazmak mümkün olur. Bu yazıda TypeS

3 dk
TypeScript’te Fonksiyonlar ve İlgili Ayarlar
TypeScript Dersleri

TypeScript’te Fonksiyonlar ve İlgili Ayarlar

TypeScript’te fonksiyonlar, yalnızca kodu düzenli hale getirmek için değil, aynı zamanda hataları erken yakalamak ve daha güvenli yazılım geliştirmek için büyük önem taşır. Bu yazıda TypeScript’te fonksiyonları nasıl tanımlarız, nasıl daha güvenli hale getiririz ve hangi ayarlarla yazdığımız f

3 dk