Sobes.tech
Middle

Jenerikler nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

TypeScript'te jenerikler, farklı veri türleriyle çalışabilen, ancak tip güvenliğini koruyan bileşenler (fonksiyonlar, sınıflar, arayüzler) oluşturmanıza olanak tanır. Daha esnek ve yeniden kullanılabilir kod yazmayı sağlarlar, statik tiplemenin avantajlarını kaybetmeden. En basit örnek, fonksiyonlarda jeneriklerin kullanılması ve argüman olarak geçirilenle aynı türü döndürmesidir.

// Herhangi bir türde argüman alan ve onu döndüren fonksiyon
function identity<T>(arg: T): T {
    return arg;
}

// Belirli bir türle jenerik kullanımı - string
let outputString = identity<string>("dize"); // outputString'in türü string olacak

// Otomatik tür çıkarımıyla jenerik kullanımı - number
let outputNumber = identity(123); // outputNumber'un türü number olacak

Jenerikler sınıflarda da kullanılabilir:

// Herhangi bir türdeki öğelerle çalışan sınıf
class GenericBox<T> {
    value: T;
    constructor(initialValue: T) {
        this.value = initialValue;
    }
}

// string türüyle GenericBox örneği oluşturma
let stringBox = new GenericBox<string>("merhaba");
// boolean türüyle GenericBox örneği oluşturma
let booleanBox = new GenericBox(true); // TypeScript türü çıkarır

Ve arayüzlerde:

// Jenerikli arayüz
interface KeyValuePair<K, V> {
    key: K;
    value: V;
}

// Belirli türlerle arayüz kullanımı
let stringNumberPair: KeyValuePair<string, number> = { key: "yaş", value: 30 };

Jeneriklerin kullanımı avantajları:

  • Kodun yeniden kullanımı: Bir yapı farklı veri türleriyle kullanılabilir.
  • Tip güvenliği: Derleyici, derleme sırasında türleri kontrol eder ve potansiyel hataları önler.
  • Okunabilirlik ve bakım kolaylığı: Kod daha anlaşılır hale gelir, çünkü bileşenin hangi türlerle çalıştığı açıkça görülür.

Jenerikler, React (bileşenlerin prop tiplerini belirlemek için), Redux (store'un tiplenmesi için) ve koleksiyonlar üzerinde çalışırken sıkça kullanılır.