I'm curious what happens when you expect a certain type as a response from fetch / Axios / etc and its response is of a different type. Can i detect that mismatch?
interface HttpResponse<T> extends Response {
parsedBody?: T;
}
export async function http<T>( request: RequestInfo ): Promise<HttpResponse<T>> {
const response: HttpResponse<T> = await fetch( request );
response.parsedBody = await response.json();
return response;
}
// example consuming code
const response = await http<number>(
"https://thisURLdoesNotReturnANumber"
);
Will the code throw an error? Will it pass silently? How do i detect a mismatch?