我有一个使用next-connect
&的项目next-iron-session
。
next-connect
默认使用<NextApiRequest, NextApiResponse>
& 我使用<NextIronRequest, NextApiResponse>
where
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