TypeScript'te Enum'lar Adım Adım Nasıl Kullanılır
TypeScript'teki enumlar, ilişkili değerlerin bir koleksiyonunu temsil etmek için kullanılabilen bir dizi adlandırılmış sabiti tanımlamanın bir yoludur. Bu değerlere kolay isimler vererek kodu daha okunabilir ve sürdürülebilir hale getirirler. Bu kılavuz, TypeScript'te enumları adım adım kullanarak, türlerini, faydalarını ve pratik örneklerini ele alacaktır.
Enum Nedir?
enum ("enumeration" kısaltması), TypeScript'te adlandırılmış sabitler kümesini tanımlamanıza izin veren özel bir veri türüdür. Bu adlandırılmış sabitler, sayısal veya dize değerlerini temsil edebilir ve kodunuzu daha açıklayıcı ve daha az hataya açık hale getirir.
TypeScript'te Enum Türleri
TypeScript'te üç tür enum vardır:
- Sayısal Enumlar
- Dize Enumları
- Heterojen Sayımlar
Sayısal Enumlar
Sayısal enumlar TypeScript'te varsayılandır. Bunlar, 0'dan veya belirtilmişse özel bir başlangıç değerinden başlayarak otomatik olarak sayısal değerler atanan adlandırılmış değerler kümesidir.
Temel Sayısal Enum Örneği
Aşağıda sayısal bir enumun basit bir örneği verilmiştir:
enum Direction {
Up,
Down,
Left,
Right
}
let move: Direction = Direction.Up;
console.log(move); // Output: 0
Bu örnekte, Direction
enum'unun dört üyesi vardır: Up
, Down
, Left
ve Right
. Varsayılan olarak, Up
öğesine 0
değeri atanır, Down
öğesine 1
değeri atanır, vb. Üyeler için özel sayısal değerler de belirtebilirsiniz.
Özel Değerlere Sahip Sayısal Numaralandırma
Enum üyelerine özel değerler atayabilirsiniz:
enum Status {
New = 1,
InProgress,
Done = 5,
Cancelled
}
console.log(Status.New); // Output: 1
console.log(Status.InProgress); // Output: 2
console.log(Status.Done); // Output: 5
console.log(Status.Cancelled); // Output: 6
Bu örnekte, Yeni
öğesi 1
olarak ayarlanmıştır, Devam Ediyor
öğesi otomatik olarak 2
olarak ayarlanmıştır, Bitti
öğesi 5
olarak ayarlanmıştır ve İptal Edildi
öğesi otomatik olarak 6
olarak ayarlanmıştır.
Dize Enumları
Dize enumları, her üyenin bir dize sabitiyle başlatıldığı, böylece daha okunabilir ve hata ayıklamanın daha kolay hale getirildiği başka bir enum türüdür.
Temel Dize Enum Örneği
Aşağıda bir dize enum örneği verilmiştir:
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT"
}
let move: Direction = Direction.Left;
console.log(move); // Output: "LEFT"
Bu örnekte, her enum üyesi bir dize değeriyle başlatılır. Sayısal enumların aksine, dize enumları otomatik olarak artırılan değerlere sahip değildir.
Heterojen Sayımlar
Heterojen enumlar, hem dize hem de sayısal üyeler içeren enumlardır. Bunları tanımlamak mümkün olsa da, kodda karışıklığa ve hatalara yol açabileceğinden genellikle önerilmez.
Heterojen Enum Örneği
İşte heterojen bir enum örneği:
enum MixedEnum {
Yes = "YES",
No = 0,
Maybe = 1
}
console.log(MixedEnum.Yes); // Output: "YES"
console.log(MixedEnum.No); // Output: 0
Bu örnekte, MixedEnum
hem dize hem de sayısal değerleri içerir. Bu tür enumları dikkatli kullanın çünkü karışıklığa neden olabilirler.
Enum Kullanım Örnekleri
Enumlar çeşitli senaryolarda faydalıdır:
- Yönler (Yukarı, Aşağı, Sol, Sağ) gibi ilişkili sabitlerin kümesini temsil eder.
- Durum makinesinde durumları tanımlama (Yeni, Devam Ediyor, Tamamlandı, İptal Edildi).
- Daha iyi okunabilirlik için switch-case ifadelerinde bunları kullanın.
Switch-Case Örneğinde Enum
Switch-case ifadesinde enum'ların kullanılması kod okunabilirliğini artırır ve durumları yönetmeyi kolaylaştırır.
enum Status {
New,
InProgress,
Done,
Cancelled
}
function getStatusMessage(status: Status): string {
switch (status) {
case Status.New:
return "The task is new.";
case Status.InProgress:
return "The task is in progress.";
case Status.Done:
return "The task is completed.";
case Status.Cancelled:
return "The task is cancelled.";
default:
return "Unknown status.";
}
}
console.log(getStatusMessage(Status.InProgress)); // Output: "The task is in progress."
Bu örnekte, switch-case ifadesi enum'ların kullanılması sayesinde daha okunabilir ve hataya daha az açıktır.
Çözüm
TypeScript'teki enumlar, adlandırılmış sabitler kümesini tanımlamak için güçlü bir yol sunarak kod okunabilirliğini ve tür güvenliğini artırır. Sayısal, dize veya hatta heterojen enumlar kullanarak kodunuzu daha iyi yönetebilir ve düzenleyebilirsiniz. Bu adım adım kılavuzla artık kodunuzu daha temiz ve daha sürdürülebilir hale getirmek için TypeScript'te enumları kullanma konusunda rahat olmalısınız.