<aside> ☝ 목차
</aside>
type User = {
id: number;
name: string;
email: string;
};
type ApiResponse = {
status: 'loading' | 'success' | 'error';
data?: User;
message?: string; // 성공 또는 에러 메시지 출력
};
function processApiResponse(response: ApiResponse) {
switch (response.status) {
case 'loading':
console.log('데이터가 현재 로딩중입니다.');
break;
case 'success':
if (response.data) {
console.log('데이터가 성공적으로 전달되었습니다.', response.data);
displayUserData(response.data);
} else {
console.log('데이터 전달은 성공했지만 데이터를 찾을 수 없습니다');
}
break;
case 'error':
console.log('에러가 발생하였습니다.');
break;
}
}
function displayUserData(user: User) {
console.log(`User ID : ${user.id}`);
console.log(`User NAME : ${user.name}`);
console.log(`User EMAIL : ${user.email}`);
}
function fetchDataFromAPI(): ApiResponse {
return {
status: 'success',
data: {
id: 1,
name: '테드',
email: '[email protected]',
},
message: '데이터가 성공적으로 전달되었습니다.',
};
}
const response = fetchDataFromAPI();
processApiResponse(response);