NextAuth 4.24.6中TypeScript/ESLint的any类型赋值错误如何解决?
解决NextAuth 4.24.6中TypeScript/ESLint的
no-unsafe-assignment错误 你遇到的错误是因为TypeScript无法自动推断NextAuth()返回值的具体类型,默认将其判定为any,触发了ESLint的@typescript-eslint/no-unsafe-assignment规则。以下是几种可行的解决方法:
方法一:为handler添加明确的类型注解
直接给handler指定NextApiHandler类型(Next.js的API路由处理函数类型),让TypeScript明确其类型:
import type { NextApiHandler } from 'next'; import NextAuth from "next-auth"; import { authOptions } from "@/server/auth"; const handler: NextApiHandler = NextAuth(authOptions); export { handler as GET, handler as POST };
方法二:确保authOptions的类型合规
检查你的@/server/auth文件,确认authOptions已经正确标注了AuthOptions类型,这能帮助TypeScript更好地推断NextAuth()的返回值:
// @/server/auth.ts import type { AuthOptions } from 'next-auth'; export const authOptions: AuthOptions = { // 你的认证配置(比如providers、session等) };
方法三:临时禁用该行ESLint规则(不推荐长期使用)
如果只是临时测试需要,可以单独禁用该行的规则,但不建议作为长期解决方案,因为会掩盖潜在的类型问题:
import NextAuth from "next-auth"; import { authOptions } from "@/server/auth"; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const handler = NextAuth(authOptions); export { handler as GET, handler as POST };
内容的提问来源于stack exchange,提问作者MKapp
相关产品推荐
相关产品推荐

