[Typescript] 'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation.

gygy·2022년 2월 13일
0

Typescript

목록 보기
4/13
post-thumbnail
import API from "constants";
import { call } from "redux-saga/effects";

function* workGetCatsFetch() {
  const cats = yield call(() => fetch(API));
}

여기서 이런 에러가 나왔다.

'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation.

스택오버플로우에서 답변을 참고했다.

  • yield 왼쪽의 변수값의 타입은 항상 any 이다.
  • yield는 모든 값을 대응해야 하므로 타입을 반환하지 않는다.
  • yield로 산출되는 값의 타입은 사용자가 정의해야함.

현재 yield와 함께 call로 사용하는 함수는 fetch로, 서버 응답값을 받아오기 때문에 변수 cats의 타입을 ServerResponse로 지정해주었다.

import API from "constants";
import { ServerResponse } from "http";
import { call } from "redux-saga/effects";

function* workGetCatsFetch() {
  const cats: ServerResponse = yield call(() => fetch(API));
}

해결!


Reference

profile
Why?에서 시작해 How를 찾는 과정을 좋아합니다. 그 고민과 성장의 과정을 꾸준히 기록하고자 합니다.

0개의 댓글