Inflearn brand logo image

인프런 커뮤니티 질문&답변

주병규님의 프로필 이미지
주병규

작성한 질문수

React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지

Axios 리팩토링 및 모듈화

Object.assign 문법

작성

·

19

0

function create(baseURL, options) {
  const instance = axios.create(
    Object.assign({
      // baseURL: baseURL,
      baseURL, // key 와 값이 같으면 생략 가능
    }),
    options,
  );
  return instance;
}

제가 사용한 코드입니다.(강의 내용 그대로 담았습니다. 주석 빼고 보면 강의 시 사용한 코드와 동일합니다.

제가 궁금한 것은,

인터넷으로 관련 문법을 찾아 본 결과 Object.assign(A,B,C)같은 형식으로 하여, A,B,C 각각의 객체를 merge한다고 알고 있는데,

강의에서는 Object.assign({baseURL}),options

으로 options객체를 object.assign 함수 바깥에 위치하더라구요?

이러면 아무 의미 없는 코드가 되어 버리는것 아닌가요?

Object.assign({baseURL,},options)를 해야 되는거 같은데,

제가 놓친 부분이 있는걸까요?

(코딩이 전공이 아니라 제가 잘 모르는 걸수도 있습니다. 알려주시면 감사하겠습니다)

답변 1

0

짐코딩님의 프로필 이미지
짐코딩
지식공유자

좋은 지적 감사합니다! 확인해보니 제가 실수했네요.

axios.create()는 하나의 config 객체만 받는데, 저는 두 개의 인자를 전달했습니다.

올바른 코드는 Object.assign({baseURL}, options) 또는 {baseURL, ...options}입니다.

설명란에 정정하여 업데이트하겠습니다.

올바른 코드

// 방법 1: Object.assign 사용
const instance = axios.create(
  Object.assign({baseURL}, options)  // 하나의 합쳐진 객체
);

// 방법 2: 스프레드 연산자 사용 (더 권장)
const instance = axios.create({
  baseURL,
  ...options
});

 

주병규님의 프로필 이미지
주병규

작성한 질문수

질문하기