
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
안녕하세요 튜터님, 항해 플러스 백엔드 8기 박성용 입니다.
사전 스터디 중 TS 4주차 실습 강의를 진행하면서 궁금한 점이 있어서 질문을 드립니다.
find 함수의 반환값을 저장해서 사용하기 위해서
const order = orders.find((order) => order.id === orderID);
와 같이 사용 하여 암묵적으로 order 변수에 any 타입을 부여하였지만,
const order: Order = orders.find((order) => order.id === orderID);
와 같은 형식으로 저장하려 하면
'Order | undefined' 형식은 'Order' 형식에 할당할 수 없습니다.
'undefined' 형식은 'Order' 형식에 할당할 수 없습니다.ts(2322)
라는 에러를 확인할 수 있었습니다.
이럴 때에는 any 타입으로 받는 것이 맞는 것인지, Order 타입을 지정하여 저장할 수 있는 방법이 있는지 궁금합니다.
function completeOrder(user: User, orderID: number): void {
if(!isAdmin(user)) {
console.log("권한이 없습니다.")
return;
}
const order: Order = orders.find((order) => order.id === orderID);
if(typeof order !== "undefined") {
order.status = "completed";
console.log(`${user.name}님이 주문하신 ${order.beverageName}이 준비되었습니다.`)
}
else {
console.log("주문 번호가 존재하지 않습니다.")
}
return;
}
