【问题标题】:No overload matches this call. TypeScript error while using `next-connect` & `next-iron-session`没有重载匹配此调用。使用`next-connect`和`next-iron-session`时出现TypeScript错误
【发布时间】:2021-11-17 00:36:42
【问题描述】:

我有一个项目使用next-connect & next-iron-session

next-connect 默认使用<NextApiRequest, NextApiResponse> 而我在哪里使用<NextIronRequest, NextApiResponse>

export type AppSession = {
  session: Session
}

export type NextIronRequest = NextApiRequest & AppSession

但我无法将<NextIronRequest, NextApiResponse> 传递给nc,例如:

return nc<NextIronRequest, NextApiResponse>({
    onError: (err, _, res) => {
      error(err)
      res.status(500).end(err.toString())
    },
  })

这应该可以解决我的问题,但它给了我错误:

预期的类型参数为 0,但得到了 2.ts(2558)

我的handler() 函数出现过载错误,例如:

export default handler()
  .get('/twitter/generate-auth-link', generateAuthLink)
  .get('/twitter/get-verifier-token', getVerifierToken)

每种方法都有 2 个错误:

没有重载匹配这个调用。 重载 1 of 2,'(...handlers: RequestHandler[]): NextConnect',给出了以下错误。 'string' 类型的参数不能分配给'RequestHandler' 类型的参数。 Overload 2 of 2, '(pattern: string | RegExp, ...handlers: RequestHandler[]): NextConnect',给出了以下错误。 '(req: NextIronRequest, res: NextApiResponse) => Promise' 类型的参数不可分配给 'RequestHandler' 类型的参数。 参数“req”和“req”的类型不兼容。 类型“NextApiRequest”不可分配给类型“NextIronRequest”。 “NextApiRequest”类型中缺少属性“会话”,但在“AppSession”类型中是必需的。ts(2769)

没有重载匹配这个调用。 重载 1 of 2,'(...handlers: RequestHandler[]): NextConnect',给出了以下错误。 'string' 类型的参数不能分配给'RequestHandler' 类型的参数。 Overload 2 of 2, '(pattern: string | RegExp, ...handlers: RequestHandler[]): NextConnect',给出了以下错误。 '(req: NextIronRequest, res: NextApiResponse) => Promise' 类型的参数不可分配给 'RequestHandler' 类型的参数。 参数“req”和“req”的类型不兼容。 类型“NextApiRequest”不可分配给类型“NextIronRequest”。 类型 'NextApiRequest' 不可分配给类型 'AppSession'.ts(2769)

我该如何解决?

我的完整复制在这里→https://github.com/deadcoder0904/twitter-api-v2-3-legged-login-using-next-connect

【问题讨论】:

    标签: typescript next.js session-state next-connect


    【解决方案1】:

    原来,我使用的是旧版本的next-connect

    我已经从 next/examples 克隆了 repo,所以这一定是它在旧版本上的原因。

    升级next-connect 解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2022-12-07
      • 2020-08-24
      • 2023-01-04
      • 2020-06-29
      • 2020-02-15
      • 2021-09-13
      • 2020-11-28
      • 1970-01-01
      相关资源
      最近更新 更多