Next-Auth中为TypeScript回调函数参数提供类型的方法
解决Next-Auth结合TypeScript时回调函数的类型错误问题
要解决jwt和session回调的类型报错,核心是通过模块扩展自定义Next-Auth的JWT和Session类型,添加你需要的字段。
步骤1:创建类型声明文件
在项目根目录或types文件夹下创建next-auth.d.ts文件,内容如下:
import NextAuth from "next-auth" declare module "next-auth" { // 扩展Session接口,添加自定义的accessToken字段 interface Session { accessToken?: string } // 扩展JWT接口,添加自定义的accessToken字段 interface JWT { accessToken?: string } }
TypeScript会自动识别这个声明文件,扩展Next-Auth的默认类型。
步骤2:编写回调函数
现在你的回调函数可以正常使用自定义字段,TypeScript不会再报错:
callbacks: { async jwt({ token, account }) { if (account) { token.accessToken = account.access_token } return token }, async session({ session, token }) { console.log('jwt callback') session.accessToken = token.accessToken return session }, }
补充说明
- 不需要手动给回调参数加类型注解,TypeScript会自动推断扩展后的类型
- 如果需要添加更多自定义字段,直接在
Session和JWT接口里新增即可 account参数的access_token是Next-Auth内置Account类型的属性,无需额外扩展
内容的提问来源于stack exchange,提问作者probaku1234
相关产品推荐
相关产品推荐

