[TS] Spread types may only be created from object types.ts(2698)

김지환·2024년 4월 26일

다음과 같은 타입스크립트 오류를 맞이했다.

Spread types may only be created from object types.ts(2698)

아래와 같이 리액트 쿼리를 사용해서 쿼리 데이터를 가져온 후
참조를 끊어주는 과정에서 생긴 에러다.

const data = queryClient.getQueryData(쿼리키);

const shallow = {...data}

분명 data를 콘솔로 확인하면 객체 형식으로 나오는데

뭐가 문제일까? 하고 봤는데

dataundefined일 가능성이 있기 때문에
undefined에는 spread operator 적용을 할 수 없기 때문에 발생한 에러다.

때문에 아래와 같이 수정했다.

 const data: 데이터 형식 | undefined = queryClient.getQueryData(쿼리키);
 if (data && "특정 프로퍼티" in data) {
	const shallow = { ...postQueryData };
    ...
 }
profile
세상의 문제 해결을 즐기는 프론트엔드 개발자

0개의 댓글