본문 바로가기
자바스크립트

TypeError: Cannot destructure property 'review' of 'result' as it is undefined 오류

by 창고관리장 2024. 8. 9.

 

객체 구조 분해 할당을 시도할 때 발생할 수 있는 오류

 

오늘 객체 구조 분해를 사용하면서 이런 오류를 만났다.

 

TypeError: Cannot destructure property 'review' of 'result' as it is undefined

 

이 오류는 아래 코드를 사용하면서 발생했다.

let result;
const { review } = result;

 

이것보다 좀 더 길었지만 오류가 발생한 부분의 코드만 적었다. 현재 코드에서도 result가 undefined나 null일 수 있는데, 그러한 경우를 처리하는 코드를 넣지 않아 발생한 것이다.

 

그래서 아래처럼 보완했다.

let result;

if (!result) return;

const { review } = result;

 

조건문을 통해 result가 undefined나 null이면 함수를 종료하도록 하고 통과했을 때 review 값을 받을 수 있도록 했다.

 

또, 이러한 코드로도 오류를 해결할 수 있었다.

let result;
const { review } = result || {};

 

위 코드는 result가 undefined나 null이면 OR 연산자를 통해 빈 객체가 나오도록 한 코드이다.

 

이 오류를 해결하면서 객체 구조분해에 좀 더 익숙해지고, 이러한 오류가 발생하지 않도록 코드를 좀 더 세심하게 작성해야겠다는 생각을 하게 되었다.

 

 

'자바스크립트' 카테고리의 다른 글

FileReader api로 이미지 미리보기  (0) 2024.08.15
스로틀과 디바운스  (0) 2024.08.14
ES2022에서 새로 추가된 top-level await  (0) 2024.07.25
콜백 지옥  (2) 2024.07.24
map 메서드와 forEach 메서드 활용  (0) 2024.07.23