api > useGetPostList.ts파일
Error : ts2769
카테고리별 분류를 위해 queryKey에 category변수를 넣자 발생한 에러로 다음은 에러 전문.
No overload matches this call.
Overload 2 of 3, '(queryKey: [string, string | undefined, number | undefined], options?: Omit<UseInfiniteQueryOptions<AxiosResponse<PostListResponse, any>, DefaultError, AxiosResponse<...>, AxiosResponse<...>, [...]>, "queryKey"> | undefined): UseInfiniteQueryResult<...>', gave the following error.
Argument of type '{ queryKey: (string | number | undefined)[]; queryFn: ({ pageParam }: QueryFunctionContext<[string, string | undefined, number | undefined], any>) => Promise<AxiosResponse<PostListResponse, any>>; getNextPageParam: (lastPage: AxiosResponse<...>) => number | undefined; cacheTime: number; notifyOnChangeProps: string[]...' is not assignable to parameter of type '[string, string | undefined, number | undefined]'.
Object literal may only specify known properties, and 'queryKey' does not exist in type '[string, string | undefined, number | undefined]'.ts(2769)
→ 미해결 (정상작동하나 추후 빌드에러시 확인 필요)
console에 "pull-to-refresh destroyed"라고 찍힌다.
불길한 예감이...
useInfiniteQuery<Awaited<ReturnType<typeof getPostList>>,
DefaultError,...
다시 코드를 보니 useInfiniteQuery안에 디폴트 에러값이 들어있던 것이 원인이었다. 카테고리 type은 string인데 디폴트 에러코드가 string이었던 것이다. 아마 이전 로직에는 카테고리없이 id값으로만 post를 요청해서 저렇게 설계해놓은 것 같다.
interface DefaultErrorResponse {
errorCode: string;
}
export type DefaultError = AxiosError<DefaultErrorResponse>;