티스토리 뷰

반응형

Method Decorator는 타입스크립트에서 메소드를 꾸며주기 위한 기능입니다.

Method Decorator는 메소드 선언 앞에 @ 기호를 붙여 사용합니다.

이 기능은 메소드를 감싸서 추가적인 동작을 수행합니다.

Method Decorator는 메소드를 둘러싸는 함수로, 메소드를 호출할 때 호출되며, 메소드의 인스턴스, 메소드 이름 및 메소드 설명자를 인자로 받습니다.

Method Decorator를 사용하면 메소드의 동작을 수정하거나, 메소드 호출 전후에 추가 동작을 수행할 수 있습니다. 또한 메소드의 매개변수를 검사하거나 수정하는 등의 작업도 가능합니다.

Method Decorator는 다음과 같이 사용할 수 있습니다.

function MethodDecorator(target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>) {
    // 메소드 동작 수정 또는 추가 동작 수행
}

  • target: 메소드를 소유하는 객체입니다.
  • propertyKey: 메소드 이름입니다.
  • descriptor: 메소드 설명자입니다.

예를 들어, 다음과 같이 Method Decorator를 사용하여 메소드 호출 시간을 측정할 수 있습니다.

function measure(target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>) {
    const originalMethod = descriptor.value;
    descriptor.value = function (...args: any[]) {
        console.time(`Execution time for ${propertyKey}`);
        const result = originalMethod.apply(this, args);
        console.timeEnd(`Execution time for ${propertyKey}`);
        return result;
    };
    return descriptor;
}

class MyClass {
    @measure
    myMethod() {
        console.log('Method executed.');
    }
}

const myClass = new MyClass();
myClass.myMethod();

위 예제에서는 measure라는 Method Decorator를 정의하고, MyClass의 myMethod에 적용하였습니다. measure는 myMethod를 감싸서, 메소드가 실행될 때마다 실행 시간을 측정하고 결과를 반환합니다.

이와 같이 Method Decorator를 사용하면 메소드에 추가적인 동작을 수행할 수 있으며,

코드의 가독성과 유지보수성을 높일 수 있습니다.

 

반응형
댓글