선생님 10-8 숙제 질문있습니다.
179
작성한 질문수 142
빨간줄 에러 그어져있는거를 읽고 ProductTag타입과
create-product.input.ts에서 선언한
@Field(() => [String])
productTags: string[];이부분이 문제라고 판단을 했습니다.
더 깊게 파고들어가보면 선생님이 제시하신 숙제에대해서 먼저 살펴봐야할것 같다는 생각이 들었습니다.
1. 아래 코드에서 ...product의 타입은 Product로 선언되어있습니다.
// 숙제-1)왜 아래 에러가 발생하는지 고민해보기
// 숙제-2)아래 에러 고쳐보기
const result = this.productsRepository.save({
...product,
...updateProductInput,
});Product의 타입중 아래와같이 ProductTag[]를 필수로선언한게 있는데 이게 업데이트프로덕션인풋 타입과 충돌(?)이 일어나서 에러가 발생하는것 같았습니다.
productTags: ProductTag[];왜냐하면 업데이트프로덕션인풋 타입은 아래처럼 모든 타입을 ?로 바꿔주고있기때문입니다.
PartialType(CreateProductInput)create-product.input.ts에서 선언한 타입을 아래와 같이 바꿔주어 해결했습니다.
ProductTag의 {} 객체안에들어가는 값까지 다 ?로 바꿨습니다.
@Field(() => [String])
productTags: DeepPartial<ProductTag[]>;
여기까지가 제가 풀이해본건데요..
솔직히 맞는지 모르겠어요
요약하자면 ,updateProductInput이랑 product 타입이 충돌일어나서 그런거다. 라고 이해하고있는데 맞을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
질문하신 부분에 대해 답변 드리겠습니다. 네, 맞습니다. 귀하의 진단대로, updateProductInput과 Product 타입 간에 발생하는 충돌이 문제의 원인으로 보입니다. Product 타입에서 productTags를 ProductTag[]로 필수 선언했고, updateProductInput에서는 CreateProductInput 타입을 PartialType으로 사용하여 모든 속성을 선택적(? 표시)으로 만들었습니다. 따라서, productTags의 경우도 선택적으로 처리되어 ProductTag[]와 타입이 일치하지 않게 되어 충돌이 발생했습니다.
create-product.input.ts에서 productTags 타입을 DeepPartial<ProductTag[]>로 변경하여 문제를 해결한 점은 올바른 접근 방식입니다. DeepPartial을 사용하면 ProductTag 객체 내의 모든 속성이 선택적이 되어 PartialType(CreateProductInput)을 사용할 때 발생하는 타입 충돌 문제를 해결할 수 있습니다.
요약하자면, updateProductInput과 product 타입 간의 충돌이 문제의 원인이 맞으며, 속성을 선택적으로 처리함으로써 이 문제를 올바르게 해결하셨습니다.
추가적으로 궁금한 점이 있다면 언제든지 질문해 주세요.
그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?
0
82
2
강의 전체 소스 코드를 받고싶습니다.
0
75
2
fontawesome 사용 문의
0
76
2
소스 코드 부탁드립니다~
0
84
2
깃 레포지터리 소스
0
80
2
커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요
0
72
2
10-01 Entity TypeOrmModule.forRoot 에 entities
0
84
3
강의 버전관련 문의입니다
0
101
2
Ubuntu 설치 관련
0
60
1
schema.gql 질문 드립니다.
0
50
1
서버 재실행시 Many to Many
0
100
3
input 관련 문의
0
89
2
Rest API 보다는 graphql이 주된 내용인데
0
130
2
강의 전체 소스코드 받을수있을까요?
0
154
1
도커볼륨 마운트 관련
0
126
2
findOne 타입스크립트오류
0
108
1
http => htrtps 호출 인증서 신뢰 오류
0
348
1
self-signed certificate in certificate chain 에러 발생
0
410
1
mongoose 설치 오류
0
141
1
특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)
0
280
2
08-06
0
177
3
구조랑 패턴 관련해서 질문
0
124
2
mydocker
0
127
2
coolsms statuscode 2000 인데 전송안돼는 경우 확인.
0
155
1





