我有一个简单的 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
如何摆脱 Typescript 干扰某些
AxiosResponse<any, any>
类型?我声明返回类型是 Item[] 类型的承诺,那么为什么它甚至假设它可能是 AxiosResponse<any, any>
?
axios.get
返回一个 AxiosResponse
对象。数据位于该对象的 data
属性内:
const stuff = {
getItems: (): Promise<Item[]> =>
apiAxios
.get(`/api/get-items`)
.then((response) => prepareItem(response.data)),
};