codestates / codestates/Campbu
[Err Log] javascript (etc)/2022-01-13
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
# 어떤 에러인가요?
- forEach문을 이용해 새로운 배열을 만드는데, 타겟배열이 빈배열일경우 에러가 발생함
# 에러 메시지
```
[{
"resource": "/Users/hinyc/Desktop/codestates/Project/Campbu/client/src/pages/MainDetail.tsx",
"owner": "typescript",
"code": "2339",
"severity": 8,
"message": "'never' 형식에 'reviews_id' 속성이 없습니다.",
"source": "ts",
"startLineNumber": 194,
"startColumn": 22,
"endLineNumber": 194,
"endColumn": 32
}]
```
# 에러 핸들링 방법
- 타겟배열이 빈배열이 되었을때 배열의 타입이 자동으로 `never[]`으로 추론되어 문제가 발생됨.
- 서버로 부터 받아오는데이터이기 때문에 타입을 재설정할수 없어, 타겟 배열을 새로운 배열에 복사하여 타입을 `any[]`로 수정하여 문제 해결. 또, forEach의 인자의 타입을 `any` 지정해서 해결
```tsx
//문제코드
dummydata.reviews.forEach((el) => {
tempReviews[el.reviews_id - 1] = {
...tempReviews[el.reviews_id - 1],
count: el.count,
};
});
//해결코드
const sourceReview: any[] = dummydata.reviews;
sourceReview.forEach((el) => {
tempReviews[el.reviews_id - 1] = {
...tempReviews[el.reviews_id - 1],
count: el.count,
};
});
//해결코드 2
dummydata.reviews.forEach((el: any) => {
tempReviews[el.reviews_id - 1] = {
...tempReviews[el.reviews_id - 1],
count: el.count,
};
});
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.