reactjs - 如何使用类型作为来自 axios.get 的响应

标签 reactjs typescript axios

我有一个简单的代码来通过 Axios 获取数据:

const response= await axios.get("blabla");

现在我正在尝试使用 typescript 。

当我将类型添加到 get 方法时,它会起作用:
const response= await axios.get<Todo[]>("blabla");

但我需要的是:
const response:Todo[] = await axios.get("blabla");

但是,如果我这样做,我会在 response.data 上收到错误消息:“Todo[]”类型上不存在属性“数据”

所以2个问题:
1)为什么第一种方法没有发生?
2)第二种方式怎么做?

最佳答案

axios.get() 返回一个 AxiosResponse<any> 对象,其中 response.dataany
axios.get<Todo[]>() 返回一个 AxiosResponse<Todo[]> 对象,其中 response.dataTodo[]

所以你可以输入 response 为:

const response: AxiosResponse<Todo[]> = await axios.get("blabla");

关于reactjs - 如何使用类型作为来自 axios.get 的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57629111/

相关文章:

javascript - axios - 如何处理大整数

javascript - 组件在状态更改时不重新渲染?

javascript - 仅更新单个状态变量时,所有组件都会重新渲染

reactjs - 如何跟踪 dexie UseLiveQuery 是否完成

javascript - 意外的 token 导入/导出 - typescript

javascript - 使用rxjs实现指数补偿

javascript - 使用axios上传和patch方法不起作用

javascript - Material-UI 上的样式 : Undefined CSS fields

reactjs - 如何在 xxx.tsx 类文件中导入 xxx.d.ts 声明文件?

typescript - Angular2 NgFor 在组件内