강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

yje10007님의 프로필 이미지
yje10007

작성한 질문수

실전 연습으로 익히는 고급 타입스크립트 기술

Fetch 함수 타입

제네릭을 붙이는 곳

해결된 질문

작성

·

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님이 적어주신 방법은 datafetchData에서 사용되지 않는다고 했을 땐 괜찮지만 예를 들어서 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;

};
yje10007님의 프로필 이미지
yje10007
질문자

감사합니다

 

yje10007님의 프로필 이미지
yje10007

작성한 질문수

질문하기