<aside> 💡 2022.12.08. 김관경

</aside>

// useQuery의 Type들
export function useQuery<
  TQueryFnData = unknown,
  TError = unknown,
  TData = TQueryFnData,
  TQueryKey extends QueryKey = QueryKey
>

// useMutation의 Type들
export function useMutaion<
  TData = unknown,
  TError = unknown,
  TVariables = void,
  TContext = unknown
>
const { mutate, isError, error } = useMutation<
    Promise<MyKeywordData>,
    AxiosError,
    AddKeywordData
  >({
    mutationFn: mutateAddKeyword,
    onSuccess: (addKeywordResponse: MyKeywordData) => {
      queryClient.setQueryData(
        [REACT_QUERY_KEY.MY_KEYWORD_LIST, communityId],
        (old: MyKeywordData[] | undefined) => {
          if (!old) {
            return [addKeywordResponse];
          }

          return [...old, addKeywordResponse];
        },
      );

      const prevAddedKeyword: MyKeywordData = {
        keywordId: addKeywordResponse.keywordId,
        keywordName: addKeywordResponse.keywordName,
      };
      handlePrevKeyword(prevAddedKeyword);
    },
  });

문제 해결 (2022.12.13)

/ 참고자료

TypeScript | TanStack Query Docs

react-query에 typescript 적용하기 - 리액트 쿼리, 타입스크립트