• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

데코레이터 관련 질문이 있습니다.

22.07.08 17:31 작성 조회수 186

0

NEST 배우다보니 @데코레이터가 많이 나와서 뭔지를 좀 알고 싶어 구글링을 해봤는데요 NESTJS 공식 문서에 보니 해당 되는 타입스크립트 예제가 있었고 이해를 해보려고 했는데 모르겠어서 질문드리겠습니다.

 

@함수 1
@함수 2
함수3
일 때 함수1(함수2(함수3)) <- 이해 완료

질문1 .
근데 함수1이랑 함수2에 매개변수 void인데?
뭘 받는다는 거죠...

질문 2.
함수1이랑 함수2 보면 return에 익명함수 박아놨는데 이게 왜 실행되는 거임? 어디에도 저거 실행하라는 게 없는데요?
그니깐 함수1 return 익명함수
구조면 적어도 
함수1()() 이렇게 해야 실행되지 않나용?...

답변 1

답변을 작성해보세요.

0

조교C님의 프로필

조교C

2023.02.19

안녕하세요 :)
답변 드립니다. 더 궁금하신 점 있으시면 언제든지 답글 달아주세요!

NestJS 를 잘하기 위해서는 데코레이터, 인터페이스, 클래스에 대한 TS 이해도가 높아야하니 공부해보시는 것을 적극 추천드립니다!

질문1) 근데 함수1이랑 함수2에 매개변수 void인데? 뭘 받는다는 거죠
-> 데코레이터는 함수이며 class , class field , class method , 파라미터에 붙을 수 있으며 파라미터로 void 가 들어가는 것이 아니라 contructor(생성자) 가 들어갑니다. 또한, method 와 field 같은 경우 3개의 파라미터가 자동으로 들어가게되며 target, 메타데이터, 설정 등 공식 문서를 참고해 보시면 좋을 것 같네요!

질문 2) 함수1이랑 함수2 보면 return에 익명함수 박아놨는데 이게 왜 실행되는 거임? 어디에도 저거 실행하라는 게 없는데요? 그니깐 함수1 return 익명함수 구조면 적어도 함수1()() 이렇게 해야 실행되지 않나용?...
-> 데코레이터는 붙이는 순간 인스턴스화 없이도 런타임에 자동 실행됩니다.