[Typescript] promise return void


이번에 typescript + react로 통신하는 프로젝트를 진행했는데, axios를 활용해 통신을 하는 과정에서 response type에 void가 포함되어 있는 문제가 발생하는 것이다…

그래서 문제를 파악해보니

axios({
  url: `https://storage-fe.toss.im${path}`,
  method,
  data: parameter && createBody(method, contentType, parameter),
}).then<FetchResponse<200, S> | R>(async (res) => {
  if (!res.data) {
    throw res;
  }
  const header = { status: res.status };
  const body = res.data;
  return {
    ...header,
    ...body,
  };
});
.catch(e => {
  console.log(e) // 여기가 문제
});

catch하는 부분에서 console.log()를 사용해서 벌어진 일이였다.. 너무다 당연한 문제였다. 이를 해결하려면

axios({
  url: `https://storage-fe.toss.im${path}`,
  method,
  data: parameter && createBody(method, contentType, parameter),
}).then<FetchResponse<200, S> | R>(async (res) => {
  if (!res.data) {
    throw res;
  }
  const header = { status: res.status };
  const body = res.data;
  return {
    ...header,
    ...body,
  };
});
.catch(e => {
  throw e // 요렇게 바꿔주자
});