해결된 질문
작성
·
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 타입으로 명확히 입력될 컬럼만 선택하시는 것이 향후 유지보수에 좋을 것 같네요!^^
설명 감사합니다 ~!