다음과 같은 타입스크립트 오류를 맞이했다.
Spread types may only be created from object types.ts(2698)
아래와 같이 리액트 쿼리를 사용해서 쿼리 데이터를 가져온 후
참조를 끊어주는 과정에서 생긴 에러다.
const data = queryClient.getQueryData(쿼리키);
const shallow = {...data}
분명 data를 콘솔로 확인하면 객체 형식으로 나오는데
뭐가 문제일까? 하고 봤는데
data가 undefined일 가능성이 있기 때문에
undefined에는 spread operator 적용을 할 수 없기 때문에 발생한 에러다.
때문에 아래와 같이 수정했다.
const data: 데이터 형식 | undefined = queryClient.getQueryData(쿼리키);
if (data && "특정 프로퍼티" in data) {
const shallow = { ...postQueryData };
...
}