티스토리 뷰
반응형
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를 사용하면 메소드에 추가적인 동작을 수행할 수 있으며,
코드의 가독성과 유지보수성을 높일 수 있습니다.
반응형
'타입스크립트' 카테고리의 다른 글
타입스크립트 Parameter Decorator (0) | 2023.03.17 |
---|---|
타입스크립트 Property Decorator (0) | 2023.03.17 |
타입스크립트 Class Decorator (0) | 2023.03.17 |
타입스크립트 Readonly 속성 (0) | 2023.03.17 |
Typescript 클래스와 인터페이스 (0) | 2023.03.17 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 메뉴 및 내비게이션 설계
- html
- 자기개발
- 업무잘하는버
- 타입스크립트 변수
- 어려움 극복
- 작업팁
- 피드백 수집 및 개선
- 시안 및 프로토타입 작성
- 변화주기
- 콘텐츠 매핑
- typescript 사용해야하는 이유
- 라이브러리
- decorator
- Property Decorator
- 경청하는자세
- 사용자 중심 설계
- 정보구조 설계 방법
- Parameter Decorator
- 공부잘하는법
- 클래스
- 호이안수공예
- TypeScript Guard
- 당당해지기
- highcharts
- 커피숖창업
- 호이안역사
- 인터페이스
- Method Decorator
- 시각적 디자인
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함