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

far*_*and 5 typescript reactjs axios

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

const response= await axios.get("blabla");
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试使用打字稿。

当我将类型添加到 get 方法时,它会起作用:

const response= await axios.get<Todo[]>("blabla");
Run Code Online (Sandbox Code Playgroud)

但我需要的是:

const response:Todo[] = await axios.get("blabla");
Run Code Online (Sandbox Code Playgroud)

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

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

ric*_*aan 10

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

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

所以你可以输入response

const response: AxiosResponse<Todo[]> = await axios.get("blabla");
Run Code Online (Sandbox Code Playgroud)