我有一个简单的代码可通过Axios提取数据:
const response= await axios.get("blabla");
现在我正在尝试使用打字稿。
当我将类型添加到get方法时,它将起作用:
const response= await axios.get<Todo[]>("blabla");
但是我需要的是这样的:
const response:Todo[] = await axios.get("blabla");
但是如果我这样做,我会在response.data
上收到错误消息:类型'Todo []'上的属性'data'不存在
所以有2个问题: 1)为什么第一种方法没有发生? 2)第二种方法怎么做?
答案 0 :(得分:1)
axios.get()
返回一个AxiosResponse<any>
对象,其中response.data
是any
。
axios.get<Todo[]>()
返回一个AxiosResponse<Todo[]>
对象,其中response.data
是Todo[]
。
因此您可以将response
输入为:
const response: AxiosResponse<Todo[]> = await axios.get("blabla");