Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 프론트엔드
- 프로그래머스
- vue3
- 자바스크립트
- 웹팩
- 스택
- Machine Learning
- 자료구조
- pytorch
- 해시테이블
- cors
- 코딩테스트
- alexnet
- RxJS
- 연결 리스트
- 포인터
- 배열
- RT scheduling
- 브라우저
- 큐
- 알고리즘
- 타입스크립트
- C
- GraphQL
- 이진탐색
- 프로세스
- 컨테이너
- APOLLO
- 릿코드
- 연결리스트
Archives
- Today
- Total
프린세스 다이어리
[Vue3, TypeScript] Type 'ResponseI' is missing the following properties from type 'ResultI' 에러해결 본문
FE
[Vue3, TypeScript] Type 'ResponseI' is missing the following properties from type 'ResultI' 에러해결
개발공주 2021. 9. 20. 12:00728x90
도대체 무슨 말인가 했는데 알고 보니 fetch한 데이터 타입, 컴포넌트에서 불러와서 저장하는 데이터 타입을 맞춰주면 됨.
1. 문제
// api/service.ts
export async function fetchData(): Promise<ResponseI> {
const response = await axios({
url: '/detailMock.json',
method: 'GET',
});
return Promise.resolve(response.data.result);
}
// pages/bookingDetail/DetailPage.vue
setup() {
return {
bookingItem: {} as Ref<ResultI>,
}
},
async mounted() {
try {
const result = await fetchData();
this.bookingItem = result;
} catch (e) {
...
}
}
목데이터를 불러와서 컴포넌트에서 사용하는 구조가 대충 위와 같음. 그런데 원래대로의 백엔드 api 요청 경로를 통해 받는 응답값의 형태와, 내가 만들어 둔 목데이터의 형태가 안 맞아서 타입에러가 생겼던 것. 네트워크 창엔 똑같이 나오는데 뭐가 문제지? 하면서 vscode 껐다 키고, 서버도 몇번이나 껐다 켜 봤지만 역시나 내가 이것저것 만지다가 생긴 사소한 실수였다.
2. 해결
// api/service.ts
export async function fetchData(): Promise<ResultI> {
const response = await axios({
url: '/detailMock.json',
method: 'GET',
});
return Promise.resolve(response.data.result);
}
리턴값의 타입을 제대로 맞춰 주면 해결이 된다.
728x90
'FE' 카테고리의 다른 글
동일 출처 정책(SOP)이 무엇인가요? 크로스 오리진이 금지되는 경우와 허용되는 경우 정리 (0) | 2021.10.06 |
---|---|
[JavaScript] 자바스크립트 메모리 누수를 막기 위한 방법들 (0) | 2021.10.03 |
[Vue3] Axios로 로컬에 있는 json 목데이터 가져오는 법 참쉽죠 (0) | 2021.09.19 |
[Vue3] [Vue warn]: Missing required prop: "list" 해결법 (0) | 2021.09.18 |
[Vue3] lodash debounce 메서드 vue에서 사용하는 방법 (0) | 2021.09.17 |
Comments