Tüm blog yazıları

TypeScript’te Nesneler (Objects) ve Tip Yönetimi

TypeScript, JavaScript’in üzerine geliştirilmiş, tip güvenliği sağlayan bir programlama dilidir. En güçlü özelliklerinden biri, nesnelerin yapısını önceden belirleyebilmemiz ve bu sayede kodumuzu daha sağlam ve anlaşılır hale getirebilmemizdir. Bu yazıda, TypeScript’te nesne (object) t

eminbasbayan3 dk okuma
TypeScript’te Nesneler (Objects) ve Tip Yönetimi

TypeScript, JavaScript’in üzerine geliştirilmiş, tip güvenliği sağlayan bir programlama dilidir. En güçlü özelliklerinden biri, nesnelerin yapısını önceden belirleyebilmemiz ve bu sayede kodumuzu daha sağlam ve anlaşılır hale getirebilmemizdir.

Bu yazıda, TypeScript’te nesne (object) tanımlamanın temellerini, tip anotasyonlarını, sabit (readonly) özellikleri, nesne içinde fonksiyon kullanımını ve özel tip tanımlarını (type alias) öğreneceğiz.

Nesne Tanımlama ve Tip Anotasyonu

JavaScript’te bir nesne, anahtar-değer çiftlerinden oluşan bir yapıdır. TypeScript’te ise bu nesnelerin sahip olması gereken alanları ve bu alanların türlerini tanımlayarak daha kontrollü bir yapı kurabiliriz. Buna tip anotasyonu denir.

Örnek:

tsx
let ogrenci: { ad: string; yas: number; aktif: boolean } = {
  ad: "Zeynep",
  yas: 17,
  aktif: true
};

Bu örnekte, ogrenci adlı nesne üç alan içerir: ad (metin), yas (sayı) ve aktif (doğru/yanlış). TypeScript bu tanıma göre, bu alanlara yanlış türde veri girilmesine izin vermez.

Bu, hem hataları önler hem de kodun ne yaptığı daha kolay anlaşılır hale gelir.

Readonly Özellikler

Bazı nesne özelliklerinin değiştirilememesi istenebilir. Örneğin bir öğrencinin numarası bir kere belirlendikten sonra bir daha değişmemelidir. Bu gibi durumlar için TypeScript, readonly anahtar kelimesini sunar.

Örnek:

tsx
let ogrenci: { readonly numara: number; ad: string } = {
  numara: 12345,
  ad: "Ali"
};

Bu nesne oluşturulduktan sonra ogrenci.numara alanı değiştirilemez. Değiştirmeye çalışırsanız TypeScript hata verir. Bu da önemli bilgilerin kazara değiştirilmesini engeller.

Nesne İçinde Fonksiyon (Metot) Tanımlama

TypeScript’te nesneler yalnızca veri değil, o verilerle ilgili işlemleri tanımlayan fonksiyonları da içerebilir. Bu tür fonksiyonlara metot denir.

Örnek:

tsx
let urun: {
  ad: string;
  fiyat: number;
  indirimHesapla: (oran: number) => number;
} = {
  ad: "Kulaklık",
  fiyat: 300,
  indirimHesapla: function (oran) {
    return this.fiyat - this.fiyat * oran;
  }
};

Burada indirimHesapla, ürün fiyatına göre indirim uygulayan bir fonksiyondur. Bu sayede veriye bağlı işlemler de nesnenin içinde tutulabilir.

Type Alias (Özel Tip Tanımı)

Kod yazarken aynı türde nesne tanımını birden fazla yerde kullanmanız gerekebilir. Her defasında uzun uzun yazmak yerine, bu yapıya bir isim verip her yerde o ismi kullanabilirsiniz. Bu yapıya type alias denir.

Örnek:

tsx
type Ogrenci = {
  ad: string;
  yas: number;
  aktif: boolean;
};

let ogr1: Ogrenci = { ad: "Ayşe", yas: 16, aktif: true };
let ogr2: Ogrenci = { ad: "Burak", yas: 17, aktif: false };

Bu sayede kod hem daha kısa hem daha okunabilir hale gelir. Ayrıca ileride bu tipte bir değişiklik yapmanız gerekirse sadece bir yerde değiştirmeniz yeterlidir.

DRY Prensibi ve Tekrarlı Tiplerden Kaçınma

DRY (Don't Repeat Yourself) prensibi, yazılım geliştirmede tekrar eden kodlardan kaçınmayı öneren temel kurallardan biridir. Özellikle benzer nesne yapıları tekrar tekrar yazıldığında bu kural ihlal edilmiş olur.

Kötü örnek:

tsx
let kitap1: { ad: string; sayfaSayisi: number } = { ad: "Roman", sayfaSayisi: 250 };
let kitap2: { ad: string; sayfaSayisi: number } = { ad: "Hikaye", sayfaSayisi: 150 };

İyi örnek (type alias kullanımı ile):

tsx
type Kitap = { ad: string; sayfaSayisi: number };

let kitap1: Kitap = { ad: "Roman", sayfaSayisi: 250 };
let kitap2: Kitap = { ad: "Hikaye", sayfaSayisi: 150 };

Bu sayede hem tekrar eden kodlar ortadan kalkar hem de tip yapısını bir yerde düzenleyerek tüm ilgili nesneleri güncellemek kolaylaşır.

Sonuç

TypeScript’te nesneler yalnızca veri depolamak için değil, aynı zamanda bu verileri düzenli, güvenli ve tekrar kullanılabilir hale getirmek için kullanılır. Tip anotasyonları sayesinde hataları erken aşamada fark edebilir, readonly ile sabit verileri koruyabilir, metotlarla nesneye işlev kazandırabilir ve type alias'larıyla kodunuzu sadeleştirebilirsiniz.

DRY prensibi sayesinde tekrar eden yapıları önleyerek daha bakımı kolay ve temiz bir kod tabanı oluşturabilirsiniz. Bu beceriler özellikle büyük projelerde hem zaman hem hata maliyetini ciddi şekilde azaltır.

TypeScript’te İleri Düzey Tipler
TypeScript Dersleri4 dk okuma

TypeScript’te İleri Düzey Tipler

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’

Yazıyı oku
TypeScript’te Fonksiyonlar ve İlgili Ayarlar
TypeScript Dersleri3 dk okuma

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

Yazıyı oku

Çerez tercihlerin

Platformun çalışması için zorunlu çerezler kullanıyoruz. İzin verirsen anonim kullanım verilerini ölçüyoruz. Ayrıntıları incele