인프런 커뮤니티 질문&답변

박호정님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

10-06 1:1 관계 등록 API

productsSalesLocation.service create method

해결된 질문

작성

·

158

0

 

create({productSalesLocation}): Promise<ProductSalesLocation>{
  return this.productsSalesLocationsRepository.save({...productSalesLocation});
}

강의 중 위와 같은 코드를 작성해주셨는데,  create의 parameter type은 ProductSalesLocation(Entity)의 타입에서 id만 제외하고 사용하는 형태로 작성하는 것이 맞을까요?

답변 1

0

노원두님의 프로필 이미지
노원두
지식공유자

안녕하세요! 호정님!

Omit 타입을 활용하여 id를 제외하셔서 타입을 만드는 것을 생각하고 계신 것 같아요!
접근 방법은 좋은 것 같아요! 하나만 첨언을 드리면, 추후에 프로젝트가 복잡해지다보면 id말고 제외해야하는 요소들이 많이 생겨나게 됩니다.

createdAt, updatedAt, 등과 같은 데이터를 포함하여 위 타입에서는 제외되어야하나, DB 컬럼으로는 필요한 것들이 대상이 될 수 있겠네요!
문제는, 이러한 컬럼이 Entity에 추가되었을 때, Omit으로 적용된 모든 타입들에는 자동으로 해당 컬럼이 반영되기 때문에 예기치 못한 에러를 마주하실 수 있어요!

따라서, 이러한 상황을 고려하신다면 Pick 타입으로 명확히 입력될 컬럼만 선택하시는 것이 향후 유지보수에 좋을 것 같네요!^^

박호정님의 프로필 이미지
박호정
질문자

설명 감사합니다 ~!