inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Fetch 함수 타입

제네릭을 붙이는 곳

해결된 질문

189

yje10007

작성한 질문수 3

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로 명시해주었습니다.

어떤 방법이 더 좋은걸까요?

장단점이 궁금합니다.

typescript

답변 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;

};

0

yje10007

감사합니다

 

이게 된다는걸 어떻게 판단할 수 있나요?

0

62

2

연습문제 강의 확인 부탁드립니다.

0

80

2

object key 질문드립니다.

0

66

1

행운 닉네임 등록부탁드립니다!

0

136

2

각 강의에 대한 설명 링크 404에러

0

71

2

행운문제 닉네임 등록 요청드립니다

0

65

2

블로그 링크 문제

1

124

1

제네릭과 사용자 정의 타입 가드에 관한 질문

1

168

1

제네릭 타입 제한을 하는것이 어떤 장점이 있을까요 ?

1

141

1

행운문제 닉네임 등록 신청합니다!

0

112

2

행운문제 테스트 유저 이름 입력 요청

0

129

2

행운문제 닉네임 입력 요청

1

158

2

행운문제 테스트 유저 이름 입력 요청

1

140

2

설명 블로그에 대한 질문

2

129

3

행운동전!

0

115

2

행운문제 테스트 유저 이름 입력 요청

0

122

1

행운 테스트 문제 400 에러

0

177

2

행운 테스트 문제 (존재하지 않는 유저입니다.)

1

203

2

행운테스트 동전이용!!

0

209

2

연습문제 링크 이슈

2

223

3

화살표 함수와 일반 함수의 매개변수 추론 관련

1

310

2

제네릭을 활용해서 정답을 맞춰보았습니다!

1

333

2

cache 강의 질문

1

213

1

Record의 제네릭은 자동적으로 바뀌나요?

0

383

2