Anasayfa » 5. TypeScript’de Enum Kullanımı

5. TypeScript’de Enum Kullanımı

by Levent KARAGÖL
4 dakikalık okuma süresi

Bu makalemizde, TypeScript’de temel ve alternatif indeks değerli enum tanımlarını işledikten sonra özelleştirilmiş sayısal ve metinsel enum kullanımına göz gezdirerek tip kısıtlamasında elimizi daha da güçlendireceğiz.

JavaScript’de enum desteği bulunmadığı için benzer ihtiyaçlarımızı karşılamak adına içinde belirli değişkenlerin bulunduğu nesneler kullanırdık ancak kullanım yerinde teknik olarak bunların haricinde bir değer kullanılması da mümkün olurdu. TypeScript’deki enum desteği sayesinde, sadece belirtilen değerlerden birinin seçildiğini garanti altına alabiliriz.


Temel Enum Tanımı

Aşağıda en temel enum tanımlanması ve kullanımı örneklendirilmiştir.

// En temel hali ile 3 seçenekli bir enum tanımlaması yapıyoruz
enum MyEnum {
    Option1,
    Option2,
    Option3
}

// value değişkenine Option1 değerini atıyoruz.
// value değişkenin değeri sadece bu üç seçenekten biri olabilir
let value: MyEnum = MyEnum.Option1;

// enum değerini doğrudan mantıksal ifadelerde kullanıyoruz
if (value === MyEnum.Option1) {

    console.log('Option1');
}

// Aşağıdaki şekilde enum değerine ulaşılırsa, enum tanımlamasındaki index değerine ulaşılır 
console.log(value); // 0

Konu basit olduğu için yorum satırlarında yazanları burada tekrar açıklamayacağım. Tek dikkat edilmesi gereken husus, enum seçeneklerine değer verilmediği taktirde her biri, tanımlama sırasındaki indeks değerini alır ve örneğin sonundaki gibi buna ulaşmak istediğimizde bize sayısal veri tipinde dönüş sağlar.


Alternatif İndeks Değerli Enum Tanımı

Bazı durumlarda enum seçeneklerinin indeks değerinin farklı bir sayısal değerden başlamasını isteyebiliriz. Bu durumda enum tanımlaması sırasında ilk seçeneğe bir sayısal değer verirsek, takip eden seçeneklerin tamamı bu sayısal değerden itibaren indekslenmeye başlayacaktır. Konuyu hızlı bir örnek üzerinden özetleyelim.

// Tanımlama sırasında sadece ilk seçeneğe 1 değerinin verilmesi durumunda indeksleme 1-2-3 şeklinde gerçekleşir
enum MyEnum {
    Option1 = 1,
    Option2,
    Option3
}

let value: MyEnum = MyEnum.Option2;

console.log(value); // 2


Özelleştirilmiş Sayısal Enum Tanımı

Elbette enum tanımındaki her bir seçeneğin ardışık sayılar haricinde farklı değerle sahip olmasını da isteyebiliriz. Bu durumda her bir seçeneğe ayrı ayrı değerler vererek kullanmamız da mümkündür. Yine hızlı bir örnek ile konuyu özetleyelim.

enum MyEnum {
    Option1 = 10,
    Option2 = 15,
    Option3 = 40
}

let value: MyEnum = MyEnum.Option2;

console.log(value); // 15

Yukarıdaki örnekte de görüldüğü üzere artık indeks değerleri bırakılmış, bizim elle verdiğimiz değerler kullanılmaya başlanmıştır.


Metinsel Enum Tanımı

Diğer bir alternatif olarak enum tanımındaki her bir seçeneğin sayısal yerine metinsel değerlere sahip olmasını isteyebiliriz. Bu durumda da her bir seçeneğe ayrı ayrı metinsel değerler vererek tanımlayabiliriz. Aşağıda metinsel enum tanımı için küçük bir örnek bulunmaktadır.

enum MyEnum {
    Option1 = "test1",
    Option2 = "test2",
    Option3 = "test3"
}

let value: MyEnum = MyEnum.Option2;

console.log(value); // test2


Böylece TypeScript ile enum kullanımı konusunun sonuna geldik. Bir sonraki makalemizde TypeScript’de fonksiyonlar konusuna değineceğiz.

Herkese iyi çalışmalar…

İLGİNİZİ ÇEKEBİLİR

Bir Yorum Yaz