해결된 질문
작성
·
181
1
const fetchData = async <T>(url: string):Promise<T> => {
const data = await fetch(url).then((response) => response.json());
return data;
};
Fetch 함수 강의에서 const data의 타입을 T로 지정해주셨는데, 저는 함수의 리턴타입을 프로미스 T로 명시해주었습니다.
어떤 방법이 더 좋은걸까요?
장단점이 궁금합니다.
답변 1
1
제 개인적으로는 강의의 방법이 더 좋다고 생각합니다.
그 이유는 yje10007님이 적어주신 방법은 data
가 fetchData
에서 사용되지 않는다고 했을 땐 괜찮지만 예를 들어서 data
를 가지고 무언가를 할 때 아래와 같이 userId 를 접근할 때 자동완성이 되지 않을 뿐만 아니라 (왜냐하면 data 의 타입은 any로 추론) userId 타입도 추론이 any로 되기 때문입니다.
const fetchData = async <T>(url: string):Promise<T> => {
const data = await fetch(url).then((response) => response.json());
const userId = data.userId // 여기서 data의 타입은 any, 따라서 userId도 any
return data;
};
감사합니다