타입스크립트에서 옵셔널 프로퍼티를 다루는데요, 분명히 위에서 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