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.