我有一个生成器函数foo()
,其中我使用fetch
调用 API 。
从 API 收到响应后,我将其解析为 JSON 。
Typescript引发错误:Object of type 'unknown'
在此行-> const msg = yield response.json();
function* foo(val: ValType): Generator {
const response = yield fetch(endPoint, {
method: 'POST',
body: JSON.stringify(val),
});
if (response) {
// typescript throws error
// that type is unknown for
// the response object
const msg = yield response.json();
return msg;
}
}
答案 0 :(得分:0)
错误是因为您没有声明response
的类型。使用必须声明Generator函数的类型,像这样。
function* foo(arg): Generator<YieldType, ReturnType, ArgType> {
//
}
无需分别声明yield类型,返回类型和参数类型,如果您以此方式声明,Typescript可以推断它们。