개발자
안녕하세요 예를들어 서버에서 아래와같이 응답을 준다고 할떄 end point : aimal/[id] response : { id:1 name:'코끼리', weight:1000, color: 'grey' } end point : getAnimals response:{ total_length:1, data:[{ id:1 name:'코끼리', weight:1000, } ] } 물론 위의 예시처럼 갑자기 배열로 호출시 특정 키(위 예시에서는 color)를 빼는 경우는 없겠지만, 비즈니스 로직을 처리하다보면 위와 같이 특정 api에서는 딱히 필요없는 값이라서 특정키가 빠지는 경우가 있더라구요 그런데 프론트엔드 입장에서 type Animal = { id:number; name:string; weight:number; color:Color } 이런식으로 타입을 정의해놓으면 특정 키가 들어오지 않았을 때 대응이 안되서 결국 모든 키를(id같은 특수 키 제외)nullable하게 해야하는것 같은데 좀 이상하기도 하고... 일반적으로 이런경우는 어떻게 해결하시나요?
답변 2
인기 답변
type Animal = { id:number; name:string; weight:number; } type AnimalDetail = Animal & { color: Color; } 이런식으로 하는방법도 있을수 있겠네요. API란 약속입니다. 백엔드와 협의를 통해 약속을 하시면 될꺼 같구요, 개인적으로는 api별로 위와 같은 식의 느낌으로라도 분리를 해놓는게 유지보수가 좋지 않을까 합니다.
익명
작성자
2024년 03월 26일
그런데 문제가 color가 빠질떄도있고 name이 빠질때도 있고 weight가 빠질때도 있습니다. type AnimalColor = { color : Color} type AnimalName = {name : string} ... type Animal = { id: number} & AnimalName & AnimalColor .... 이런식으로 작성해보려고 하기도 했는데 가독성이 너무 떨어지는것같기도 하고 일반적인 방법이 아닌것같아서 다른분들 의견이 궁금했습니다
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!