gpt4 book ai didi

javascript - 在 typescript 中输入检查 API 响应

转载 作者:行者123 更新时间:2023-12-01 17:17:58 24 4
gpt4 key购买 nike

我很好奇当您期望某种类型作为 fetch/Axios/etc 的响应并且它的响应是不同类型时会发生什么。我可以检测到这种不匹配吗?

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"
);

代码会抛出错误吗?会无声无息地过去吗?如何检测不匹配?

最佳答案

您的 typescript 代码转换为 javascript 在浏览器执行它之前。
它看起来像这样:

export async function http( request ) {
const response = await fetch( request );
response.parsedBody = await response.json();
return response;
}
const response = await http("https://thisURLdoesNotReturnANumber");

如您所见,没有类型。浏览器对 typescript 中定义的类型一无所知。

稍后您可能会或可能不会收到运行时错误。为了尽可能早地抛出,你需要自己在你的内部实现运行时检查 http<T>()功能。
或者您可以使用第三方库来完成这项工作。那里有很多。

关于javascript - 在 typescript 中输入检查 API 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60739581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com