<aside> ☝ 목차

</aside>

1. 상태 및 데이터 타입 정의

type User = {
  id: number;
  name: string;
  email: string;
};

type ApiResponse = {
  status: 'loading' | 'success' | 'error';
  data?: User;
  message?: string; // 성공 또는 에러 메시지 출력
};

2. API 응답 처리 함수 구현

function processApiResponse(response: ApiResponse) {
  switch (response.status) {
    case 'loading':
      console.log('데이터가 현재 로딩중입니다.');
      break;
    case 'success':
      if (response.data) {
        console.log('데이터가 성공적으로 전달되었습니다.', response.data);
        displayUserData(response.data);
      } else {
        console.log('데이터 전달은 성공했지만 데이터를 찾을 수 없습니다');
      }
      break;
    case 'error':
      console.log('에러가 발생하였습니다.');
      break;
  }
}

function displayUserData(user: User) {
  console.log(`User ID : ${user.id}`);
  console.log(`User NAME : ${user.name}`);
  console.log(`User EMAIL : ${user.email}`);
}

3. 함수 사용 예

function fetchDataFromAPI(): ApiResponse {
  return {
    status: 'success',
    data: {
      id: 1,
      name: '테드',
      email: '[email protected]',
    },
    message: '데이터가 성공적으로 전달되었습니다.',
  };
}

API 응답 처리

const response = fetchDataFromAPI();
processApiResponse(response);

api.png