TS Method Decorator


```typefunction methodDecorator() {  return function (target: any, property: any, descriptor: any) {    let originMethod = descriptor.value    descriptor.value = function (...args) {      console.log('before')      originMethod.apply(this, args)      console.log('after')    }  }}@classDecorator("param1", "param2")class Test {  property = "property";  hello: string;  constructor(m: string) {    this.hello = m;  }  @methodDecorator()  test() {    console.log("test")  }}```
메서드를 호출할 때 apply를 이용하여 this를 바인딩해줘야
이것을 이용하여 특정 메서드의 실행 전/후 로깅, 실행시간을 측정 가능


[TS Method Decorator Target](https://texonom.com/ts-method-decorator-target-016f763ac5e54dca9c384caa8b8c81fd)


[TS Method Decorator Property](https://texonom.com/ts-method-decorator-property-7194f22625b543dda651f57fe48dfcc9)


[TS Method Decorator Descriptor](https://texonom.com/ts-method-decorator-descriptor-fdf1a480e2f84f83aba1cfb5f38f4b51)



> [[typescript] 타입스크립트 데코레이터 1편 - 데코레이터 4가지 기본구조 알아보기](https://m.blog.naver.com/pjt3591oo/222120496022)
