[typescript] Axios와 함께 사용되는 타입 정의 및 인터페이스

Axios는 JavaScript 및 TypeScript에서 가장 인기 있는 HTTP 클라이언트 라이브러리 중 하나입니다. 이 라이브러리는 HTTP 요청을 쉽게 만들고 서버에서 데이터를 가져올 수 있도록 도와줍니다. TypeScript를 사용할 때 Axios와 함께 사용되는 타입 정의 및 인터페이스에 대해 알아보겠습니다.

Axios 타입 정의

Axios와 TypeScript를 함께 사용할 때, 다음과 같이 Axios의 기본적인 타입 정의를 사용할 수 있습니다.

import axios, { AxiosResponse, AxiosError } from 'axios';

axios.get('/api/user')
  .then((response: AxiosResponse) => {
    // 처리할 작업
  })
  .catch((error: AxiosError) => {
    // 에러 처리
  });

위 코드에서 AxiosResponse는 HTTP 응답에 대한 타입을 정의하고, AxiosError는 Axios에서 발생하는 에러에 대한 타입을 정의합니다.

사용자 정의 인터페이스

더 나아가, 사용자는 서버에서 받은 데이터에 대한 인터페이스를 정의하여 타입 안정성을 높일 수 있습니다.

interface User {
  id: number;
  name: string;
  email: string;
}

axios.get('/api/user')
  .then((response: AxiosResponse<User>) => {
    const user = response.data;
    // user 객체의 프로퍼티에 접근
  })
  .catch((error: AxiosError) => {
    // 에러 처리
  });

위 코드에서 User 인터페이스는 서버에서 받아온 사용자 정보에 대한 타입을 정의합니다.

이러한 방식으로 Axios와 TypeScript를 함께 사용할 때, 타입 안정성을 높이고 코드의 가독성을 개선할 수 있습니다.

결론

Axios와 함께 사용되는 타입 정의와 인터페이스를 이용하여 TypeScript 프로젝트에서 HTTP 요청을 보다 안전하고 편리하게 다룰 수 있습니다. 타입을 명시함으로써 코드의 안정성을 높이고, 인터페이스를 활용하여 데이터 구조를 명확하게 정의할 수 있습니다.