axios响应类型:为什么是AxiosResponse<any, any>?

问题描述 投票:0回答:1

我有一个简单的 axios 查询,有一些奇怪的类型问题:

const stuff = {
  getItems: (): Promise<Item[]> => apiAxios.get(`/api/get-items`).then((data) => {
      return prepareItem(data)
  }),
}

const prepareItem = (
    data: Item[]
):Item[] => {
    return data.filter(({id}) => id === 123)
}

然而,

prepareItem(data)
内的数据用红色下划线表示为Typescript错误。它说:

“‘AxiosResponse’类型的参数不能分配给‘Item[]’类型的参数。”

如何摆脱 Typescript 干扰某些

AxiosResponse<any, any>
类型?我声明返回类型是 Item[] 类型的承诺,那么为什么它甚至假设它可能是
AxiosResponse<any, any>

typescript axios
1个回答
0
投票

axios.get
返回一个
AxiosResponse
对象。数据位于该对象的
data
属性内:

const stuff = {
  getItems: (): Promise<Item[]> =>
    apiAxios
      .get(`/api/get-items`)
      .then((response) => prepareItem(response.data)),
};
© www.soinside.com 2019 - 2024. All rights reserved.