저장을 습관화
NestJS - DTO를 인터페이스가 아닌 클래스로 선언하는 이유 본문
메모..
interface는 타입스크립트에만 존재하고, 타입스크립트 컴파일이 끝나면 사라진다.
반면 class는 컴파일이 끝나고 자바스크립트로 바뀐 후에도 남아있어,
자바스크립트 단에서도 타입 검증, validation을 수행할 수 있다.
다시 말해 interface는 런타임에 없고, class는 런타임에 있다.
런타임에도 타입체크를 수행하길 원한다면 class로 선언하고,
런타임에 없길 원한다면 interface로 선언한다.
이는 Nest 코딩 컨벤션 중 하나이다.
첫째가 위에서 말한 interface가 아닌 class로 선언하여 export할 것
둘째 default가 아닌 class로 선언하여 export할 것
셋째 파일명은 스네이크 케이스나 카멜 케이스가 아닌 단어 사이사이 .을 넣을 것(nest generate로 생성하였을때와 같이)
Nest Coding Convention?
자바스크립트 프로젝트에서 선택이 아닌 필수로 가지고 있어야 하는 코딩 스타일 규약
convention - 관습, 관례, 조약, 협약
'공부 > node.js' 카테고리의 다른 글
NestJS - 컨트롤러 constructor에 private readonly를 설정하는 이유 (0) | 2023.11.09 |
---|---|
NestJS - 인터셉터와 AOP (0) | 2023.11.09 |
NestJS - tsconfig.json의 "esModuleInterop" 옵션 (0) | 2023.11.04 |
NestJS - hot reload (0) | 2023.11.04 |
NestJS - socket.broadcast.emit() 브로드캐스팅 방식 (0) | 2023.10.20 |