TypeScript Union ve Intersection Types Nedir?

TypeScript Union ve Intersection Types Nedir?


TypeScript, JavaScript'ı genişleten güçlü bir programlama dilidir ve özellikle tür sistemine sahip olmasıyla dikkat çeker. Bu makalede, TypeScript'teki iki önemli özellik olan Union Types ve Intersection Types'ı keşfedeceğiz. İlk olarak, bu türlerin ne olduğuna ve nasıl kullanılabileceğine dair bir tanım ile başlayacağız. Ardından, her iki türün de avantajlarını ele alacağız.

Union Types Nedir?

Union Types, bir değişkenin birden fazla tür alabilmesini sağlayan bir özellik olarak tanımlanabilir. Örneğin, bir değişkenin hem bir sayıyı hem de bir karakter dizisini alabilmesini istiyorsanız, bu değişken için bir Union Type tanımlayabilirsiniz. Union Types, TypeScript uygulamalarında esneklik sağlar ve geliştiricilerin daha genel bir kod yazmasına olanak tanır.

Union Type Kullanımı

function printId(id: number | string) {
  console.log("Your ID is: " + id);
}

printId(101); // Geçerli
printId("202"); // Geçerli

Yukarıdaki örnekte, printId fonksiyonu, hem number hem de string türlerinde bir id parametresi alabilmektedir. Bu şekilde, hem sayısal hem de karakter dizisi olarak geçerli kimlikler basılabilir.

Intersection Types Nedir?

Intersection Types ise, birden fazla türün bir araya gelerek yeni bir tür oluşturmasını sağlar. Bu, bir nesnenin birden fazla arayüze veya türde özellik taşıması gerektiğinde oldukça yararlıdır. Intersection Types, geliştiricilere güçlü bir tür güvenliği sunar ve karmaşık veri yapıları oluşturmak için kullanılabilir.

Intersection Type Kullanımı

interface Employee {
  id: number;
  name: string;
}

interface Manager {
  title: string;
}

type ManagerEmployee = Employee & Manager;

const manager: ManagerEmployee = {
  id: 1,
  name: "John",
  title: "Team Lead"
};

Bu örnekte, ManagerEmployee adlı bir tür, hem Employee hem de Manager arayüzlerini birleştirir. Bu sayede, bir yönetici çalışan nesnesinin hem kimlik hem de unvan bilgilerini tutmasını sağlarız.

Sonuç

TypeScript’teki Union ve Intersection Types, geliştiricilere daha esnek ve güvenli bir kod yazma imkanı tanır. Union Types, bir değişkenin farklı türlerde değerler almasını sağlarken; Intersection Types, birden fazla türün birleşimini oluşturarak daha karmaşık veri yapıları oluşturmayı mümkün kılar. Bu özellikleri kullanarak kodunuzu daha okunabilir ve sürdürülebilir hale getirebilirsiniz.