Optional chaning

Elvis 연산자로도 알려진, 선택적 연결(Optional Chaining) ?. 연산자는 존재 또는 존재하지 않는 요소와 메서드들을 안전하게 접근할 수 있도록 도와줍니다.

// 옵셔널 체이닝 연산자 등장 이전에 사용한 방법
let hobbyName = user && user.hobby && user.hobby.name

// 옵셔널 체이닝 연산자 활용 예시
hobbyName = user?.hobby?.name
// options 객체에 onSuccess 속성이 없을 경우 undefined 반환
const onSuccess = options?.onSuccess;

// 아래 코드는 onSuccess 값이 undefined 여도 오류를 발생하지 않음
onSuccess?.();

// 체이닝을 사용해 문장 구문을 줄일 수 있음
options?.onSuccess?.();

// options 객체의 onSuccess 속성이 존재할 경우,
// 호출 전에 추가적인 옵셔널 체이닝 연산자(?.)를 붙히지 않는 것이 좋음
// 오직 왼쪽에 있는 항목이 존재하지 않을 수도 있는 경우에만 체이닝 연산자(?.)을 사용하는 것을 권장
options?.onSuccess();

Last updated