본문 바로가기
Q&A해결2026년 7월 25일1분 읽기

if로 undefined 체크를 했는데도 콜백 안에서는 TS가 또 undefined일 수 있다고 하네요

t
ts_nari
조회 611댓글 1

타입스크립트에서 옵셔널 프로퍼티를 다루는데요, 분명히 위에서 if로 존재 여부를 확인했는데 그 아래 콜백 안으로 들어가면 다시 undefined일 수 있다고 빨간 줄이 그어집니다.

function render(user?: User) {
  if (user) {
    items.forEach(item => {
      console.log(user.name, item)  // Object is possibly 'undefined'.
    })
  }
}

바로 위 if에서 user가 truthy인 걸 확인했잖아요? 그런데 forEach 콜백 안에서는 user가 또 undefined일 수 있다고 하니 이해가 안 됩니다. if 블록 바로 안에서 user.name을 찍으면 에러가 안 나거든요. 콜백에 들어가는 순간만 이래요. 왜 이런 건가요?

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록