I'm trying to use fetch in my async function, but flow is throwing this error
Error:(51, 26) Flow: Promise. This type is incompatible with union: type application of identifier Promise
| type parameter T
of await
this is a code that can generate this error:
async myfunc() {
const response = await fetch('example.com');
return await response.json();
}
I would like to type the response of response.json
You may either annotate the return type of the function using Promise <T>
where T
is the desired type or assign the result to a temporary local with an explicit type annotation and then return that local. The function return type will then be inferred.
Explicit return type annotation:
async myfunc(): Promise<{name: string}> {
const response = await fetch('example.com');
return await response.json();
}
Inferred return type from explicitly annotated local:
async myfunc() {
const response = await fetch('example.com');
const result: {name: string} = await response.json();
return result;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With