에러 노트
[TS] The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.
2021bong
2022. 12. 7. 18:01
param이 undefined일 수도 있으니까 타입스크립트가 안된다고 한다... 한 번만 봐주라... 네가 봐주면 안 될까..? 🥲
const param: string | undefined
...
const param = useParams().id;
...
axios.get('../data/feeds.json').then((res) => {
// param에 빨간줄
setFeedData(res.data.feeds[param - 1]);
setHeart(res.data.feeds[param - 1].is_liked || false);
setSave(res.data.feeds[param - 1].is_marked || false);
});
...
The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.
산술 연산자 왼쪽엔 any, number, bigint만 됨! 😤
이유
undefined일 경우때문에 빨간 줄이 뜨는 것이므로 undefined가 들어오면 number로 형 변환이 될 수 있도록 해주면 된다.
...
const param = useParams().id;
...
axios.get('../data/feeds.json').then((res) => {
setFeedData(res.data.feeds[Number(param) - 1]);
setHeart(res.data.feeds[Number(param) - 1].is_liked || false);
setSave(res.data.feeds[Number(param) - 1].is_marked || false);
});
...
728x90