[Typescript] 데코레이터
데코레이터는 클래스나 클래스 멤버에 적용되고 사용되는 특수한 형태의 함수다.
데코레이터 자체는 순수한 함수의 형태로 구현할 수 있다.
데코레이터 함수는 3개의 인자를 가지는데
첫번째 target은 적용된 클래스가 들어온다.
그리고 두번째 인자 key는 데코레이터를 붙인 대상의 이름이고,
디스크립터는 단순히 설명만 하는 녀석이다.
Calc라는 클래스의 add 메서드 위에 붙이고
따로 동작 코드를 쓰지 않고도 저대로 돌리면
이렇게 boom 데코레이터가 동작한다.
타겟 객체로 클래스가 통째로 넘어오며, 키값으로는 데코한 대상의 이름인 add가 들어온다.
데코레이터의 target은 클래스 정보가 통째로 넘어오는 것이기 때문에, 이걸 사용하면 해당 클래스의 전반을 살펴보거나 마음대로 조작할 수가 있다.
이런 식으로 말이다.


데코레이터는 메서드 뿐만 아니라 클래스명과 필드에도 유효하게 동작한다.
이건 클래스

아직 클래스의 멤버가 읽히기 전에 호출되어 메서드 정보가 없다는 것이 다른 점이다.
필드에 데코레이터를 적용한 것이다.

메서드와 차이는 없다.
그렇다.
참조
https://jaeyeophan.github.io/2018/01/09/TS-6-Decorator/
https://typescript-kr.github.io/pages/Decorators.html