Этому вызову не соответствует ни одна перегрузка. Ошибка TypeScript при использовании `next-connect` и` next-iron-session`

У меня есть проект, использующий & next-iron-session.

next-connect по умолчанию использует <NextApiRequest, 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 из 2, '(... handlers: RequestHandler[]): NextConnect' вызвала следующую ошибку. Аргумент типа «строка» не может быть назначен параметру типа «RequestHandler». Перегрузка 2 из 2, '(шаблон: строка | RegExp, ... обработчики: RequestHandler[]): NextConnect', вызвала следующую ошибку. Аргумент типа '(req: NextIronRequest, res: NextApiResponse) => Promise' не может быть назначен параметру типа RequestHandler. Типы параметров req и req несовместимы. Тип NextApiRequest нельзя присвоить типу NextIronRequest. Свойство session отсутствует в типе NextApiRequest, но является обязательным для типа AppSession.ts (2769)

Этому вызову не соответствует ни одна перегрузка. Перегрузка 1 из 2, '(... handlers: RequestHandler[]): NextConnect' вызвала следующую ошибку. Аргумент типа «строка» не может быть назначен параметру типа «RequestHandler». Перегрузка 2 из 2, '(шаблон: строка | RegExp, ... обработчики: 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

1 ответ

Оказывается, я использовал старую версию.

Я клонировал репо из next/examples так что должно быть поэтому это было на старой версии.

Обновление next-connect исправил эту проблему.

Другие вопросы по тегам