属性“map”在类型“never”上不存在

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)

Jos*_*osh 6

我认为在 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 次

最近记录:

4 年,1 月 前