TypeScript’te Decorator Kullanımı: Temel Bilgiler ve Örnekler

TypeScript’te Decorator Kullanımı: Temel Bilgiler ve Örnekler


TypeScript, JavaScript diline ek özellikler ekleyerek geliştiricilere daha güçlü bir dil deneyimi sunar. Bu özelliklerden biri de dekoratörlerdir. Dekoratörler, belirli bir nesneye veya sınıfa meta veri eklemek ve o nesnenin veya sınıfın davranışını değiştirmek için kullanılır. TypeScript'te dekoratörlerin kullanımı, nesne yönelimli programlamada kodun daha sürdürülebilir ve yönetilebilir hale gelmesini sağlar.

Bu makalede, TypeScript'le dekoratörlerin nasıl kullanıldığını ve bu özellikleri kullanarak nasıl daha etkili bir geliştirme deneyimi elde edeceğinizi öğreneceksiniz. Dekoratörler, sınıflar, yöntemler, erişim belirleyicileri ve özellikler üzerinde farklı şekillerde uygulanabilir. TypeScript üzerinde dekoratör kullanımı, geliştiricilere çeşitli avantajlar sunarken, kodun okunabilirliğini ve bakımını da kolaylaştırır.

Daha Detaylı İnceleme

1. Dekoratör Türleri

Dört ana dekoratör türü vardır: Sınıf dekoratörleri, yöntem dekoratörleri, erişim belirleyici dekoratörleri ve özellik dekoratörleri. Aşağıda her bir türün ne olduğu ve nasıl kullanılacağı ile ilgili örnekler bulacaksınız.

2. Sınıf Dekoratörü Örneği

Sınıf dekoratörü, bir sınıf tanımı tamamlandıktan sonra ona meta veri eklemek için kullanılır. Aşağıdaki örnekte, Log adlı basit bir sınıf dekoratörü oluşturulmuştur:

function Log(target: Function) {
    console.log(`Sınıf adı: ${target.name}`);
}

@Log
class MyClass {
    constructor() {
        console.log('MyClass örneği oluşturuldu.');
    }
}

3. Yöntem Dekoratörü Örneği

Yöntem dekoratörleri, bir sınıfın yöntemine ek bilgiler eklemek için kullanılabilir. Aşağıdaki örnekte, bir metodun çalıştığı zamanı ölçen basit bir dekoratör gösterilmektedir:

function MeasureTime(target: any, propertyName: string, descriptor: PropertyDescriptor) {
    const originalMethod = descriptor.value;
    descriptor.value = function(...args: any[]) {
        console.time(`${propertyName} zamanı`);
        const result = originalMethod.apply(this, args);
        console.timeEnd(`${propertyName} zamanı`);
        return result;
    };
}

class MyService {
    @MeasureTime
    performTask() {
        // Zaman alacak bir işlem
        for (let i = 0; i < 1000000; i++) {}
    }
}

Sonuç

TypeScript'teki dekoratörler, kodunuzu daha modüler ve yönetilebilir hale getirmek için güçlü bir araçtır. Uygulamalarınızda dekoratör kullanarak, tekrarlayan kodlardan kaçınabilir ve daha etkili bir yapı oluşturabilirsiniz. Yöntem, sınıf ve özellik dekoratörleriyle, nesne yönelimli programlama uygulamalarınızda esneklik kazanacaksınız. Bununla birlikte, dekoratörlerin kullanımında dikkat edilmesi gereken bazı noktalar bulunmaktadır. Kodunuzu gereksiz yere karmaşık hale getirmemek için dekoratörleri dikkatli kullanmalısınız.

Umarım bu makale, TypeScript'te dekoratör kullanımı hakkında size faydalı bilgiler sağladı. Geliştirme sürecinde dekoratörleri uygularken, sağladıkları avantajları dikkate alarak kullanmayı unutmayın!