작성
·
269
·
수정됨
0
안녕하세요~ 좋은 강의 감사합니다~
spring 3년 정도 사용하다가 이번에 이직 하면서 nest.js를 사용하게 되어 강의 듣고 있는데요.
js지식이 얕아서 간혹 이해 안되는 부분이 생기더라구요.
찾아보면서 진행하고 있긴한데 이번강의의 BuilderInit클래스를 추가해주신 부분이 이해가 잘되지 않아서 문의드려요~
데코레이터는 "값 조작 은 인스턴스화 해서 실행해야 한다"라고 지난 강의에서 말씀해주셨는데
new PostEntity.Builder()를 하였을 때 컴파일 타임에 Builder() 와 멤버변수()를 인식하지못해서 사용하는 건가요? class BuilderInit {
static Builder = class {
build() {};
[props: string]: Function;
}
}
이 문법도 잘이해가 가질 않지만, 메소드의 시그니처를 정의해주는걸로 보이는데요(?), build()가 있어야 하는 이유가 뭘까요? build()도 정의해주는 것으로 봤는데 없애도 문제없이 동작하더라구요.
답변 1
0
해당 문법은 데코레이터가 실험적기능으로 타입스크립트에 도입되었을 때 문법이라 에러들을 우회하기 위해서 설명한 문법이였습니다. 특히 지금 데코레이터는 4버전 초반대랑 조금 다를 것 입니다. 그래서, 강의의 타입스크립트 버전이 너무 옛날 버전이라 강의를 재촬영을 계획하고 있습니다.
그리고 지금은 Builder를 사용하지 않고 모두 함수를 이용하는 편입니다. 예전에는 디버깅하려고 Builder를 쓰기도 했는데 지금은 보통 쓰지 않습니다. 본 영상의 목적은 Decorator에 이해를 돕기 위한 것 이였으나, 혼란을 드려 죄송합니다.