Menu
Coddy logo textTech

Tip Takma Adlarını Birleştirme

Coddy'nin JavaScript Journey'sinin TypeScript'e Giriş bölümünün bir parçası. Ders 35 / 73.

Tür takma adlarının (type aliases) en güçlü yönlerinden biri, daha gelişmiş tür tanımları oluşturmak için birleştirilebilmeleri ve yeniden kullanılabilmeleridir. Karmaşık türleri her seferinde sıfırdan tanımlamak yerine, daha küçük ve odaklanmış tür takma adlarını bir araya getirerek bunları inşa edebilirsiniz.

Bu yaklaşım kodun yeniden kullanılabilirliğini teşvik eder ve tür tanımlarınızı daha sürdürülebilir hale getirir. Bir temel türü güncellemeniz gerektiğinde, onu kullanan tüm bileşik türler değişiklikleri otomatik olarak devralır:

type Email = string;
type Phone = number;

type Contact = {
  name: string;
  email: Email;
  phone: Phone;
};

Esnek veri yapıları oluşturmak için birleşim türleri (union types) içinde tür takma adlarını (type aliases) da birleştirebilirsiniz. Bu, özellikle bir nesne özelliğinin farklı formatları kabul edebileceği durumlarda kullanışlıdır:

type ContactMethod = Email | Phone;

type User = {
  id: number;
  preferredContact: ContactMethod;
};

Bu kompozisyonel yaklaşım, kodunuzu daha ifade edici ve anlaşılması daha kolay hale getirir. string veya number gibi genel türleri görmek yerine, diğer geliştiriciler Email ve Phone gibi anlamlı tür adları aracılığıyla amaçlanan hedefi anında anlarlar.

challenge icon

Görev

Kolay

string türü için Username adında bir tür takma adı (type alias) oluşturun.

number türü için UserAge adında bir tür takma adı oluşturun.

Bir birleşim türü (union type) kullanarak Username ve UserAge türlerini birleştiren ContactMethod adında bir tür takma adı oluşturun.

Aşağıdaki özelliklere sahip bir nesne için UserProfile adında bir tür takma adı oluşturun:

  • number türünde id
  • Username türünde displayName
  • ContactMethod türünde preferredContact

Kesişim türlerini (intersection types) kullanarak UserProfile ile string türünde bir permissions özelliği içeren ek bir nesne türünü birleştiren AdminProfile adında bir tür takma adı oluşturun.

Şimdi aşağıdaki değişkenleri oluşturun:

  • id değeri 1, displayName değeri "john_doe" ve preferredContact değeri "john_doe" olan UserProfile türünde regularUser adında bir değişken oluşturun.
  • id değeri 2, displayName değeri "admin", preferredContact değeri 25 ve permissions değeri "full_access" olan AdminProfile türünde systemAdmin adında bir değişken oluşturun.

ContactMethod türünde contact adında bir parametre alan ve bir string döndüren getContactInfo adında bir fonksiyon oluşturun. Türü kontrol etmek için bir tür koruması (type guard) kullanın ve şunları döndürün:

  • Eğer bir string ise: "Contact: [contact]"
  • Eğer bir sayı ise: "Age: [contact]"

Aşağıdaki çıktıları ayrı satırlara yazdırın:

  • regularUser.preferredContact ile getContactInfo fonksiyonunu çağırın ve sonucu yazdırın
  • systemAdmin.preferredContact ile getContactInfo fonksiyonunu çağırın ve sonucu yazdırın
  • systemAdmin.permissions değerini yazdırın

Kendin dene

// YAPILACAK: Kodunuzu buraya yazın

// Username, UserAge, ContactMethod, UserProfile ve AdminProfile için tür takma adları (type aliases) oluşturun

// regularUser ve systemAdmin değişkenlerini oluşturun

// getContactInfo fonksiyonunu oluşturun

// Gerekli çıktıları yazdırın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

TypeScript'e Giriş bölümündeki tüm dersler

Kendi başına pratik yap: Online JavaScript derleyicisi