扩展FastifyContext添加token字段遇类型错误,求排查解决
问题排查与解决
你的问题主要出在两个地方:
1. 类型文件目录拼写错误
你创建的类型文件路径是src/@types/fatify/index.d.ts,但模块声明写的是declare module 'fastify',目录名拼写错误(fatify → fastify),导致TypeScript无法识别这个扩展模块。
修正方法:
将src/@types/fatify目录重命名为src/@types/fastify,确保目录名和模块声明的名称一致。
2. tsconfig.json的typeRoots配置缺失默认类型目录
你只指定了"typeRoots": ["src/@types"],这会覆盖TypeScript默认的node_modules/@types类型目录,导致Fastify本身的基础类型无法被加载,你的扩展自然也无法生效。
修正方法:
在typeRoots中添加默认的类型目录:
{ "compilerOptions": { ... "typeRoots": ["src/@types", "node_modules/@types"], ... } }
验证修正
完成上述修改后,重新编译代码,request.context.token的类型错误应该会消失。如果还有问题,可以尝试:
- 重启TypeScript语言服务(VS Code中可以按
Ctrl+Shift+P选择"TypeScript: Restart TS Server") - 确保你的
index.d.ts文件是有效的TypeScript模块(文件仅包含模块声明时无需额外导出,保证无语法错误即可)
内容的提问来源于stack exchange,提问作者Prosto_Oleg
相关产品推荐
相关产品推荐

