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

IT技术 reactjs typescript axios
2021-05-03 13:48:15

我有一个简单的代码来通过 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[]”类型上不存在属性“数据”

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

1个回答

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

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

所以你可以输入response

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