Djo*_*ony 3 typescript next.js
get当在 next.js 函数内发出 axios请求时getServerSideProps,我在 map 方法上不断收到这个恼人的打字稿下划线错误。我已经尝试了所有修复的可能性,但无法解决它。该请求实际上工作正常并提取数据,但我只需要消除错误。有什么建议吗?
export const getServerSideProps: GetServerSideProps = async () => {
const { data } = await api.get("/users/index", { //axios api
params: {
_limit: 12
_sort: "created_at",
_order: "desc"
}
})
const users = data.map(user => { // <-error line under map method
return {
id: user.id,
name: user.name,
created_at: user.created_at,
}
});
Run Code Online (Sandbox Code Playgroud)
我认为在 axios 0.22 或 0.23 中,他们更改了 Typescript 签名,因此现在您必须查看更改日志data以获取更多信息。要解决此问题,您可以传递一个泛型:
type User = {
id: string
name: string
created_at: string
}
const { data } = await api.get<User[]>("/users/index", { //axios api
params: {
_limit: 12
_sort: "created_at",
_order: "desc"
}
})
Run Code Online (Sandbox Code Playgroud)
否则你可以就地打字:
const users = (data as User[]).map(user => { // <-error line under map method
return {
id: user.id,
name: user.name,
created_at: user.created_at,
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15165 次 |
| 最近记录: |