属性'user'不存在于类型'Request<ParamsDictionary,any,any,ParsedQs,Record<string,any>>'
请帮忙,我收到此错误
src/app/middlewares/authentication.ts:16:17 - 错误 TS2339:属性 'user' 在类型 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>' 上不存在。
16 req.user = 用户;
我创建了 .d.ts 文件并将其包含在 tsconfig 文件中。我仍然无法运行此代码
请找到附件截图
在此处输入图片说明
回答
我之前被困在同样的问题上。这是我解决它的方法。
- 我在我的项目中创建了一个名为 @types 的单独目录,用于声明合并工作。
- 接下来,我在其中创建了一个名为 index.d.ts 的文件,其中包含以下内容。请注意,我们需要在 global 中声明我们自己的请求。此外,进口快递也很重要。
import * as express from "express"
declare global {
namespace Express {
interface Request {
user? : Record<string,any>
}
}
}
- 我在 tsconfig.json 中的 compilerOptions 下添加了以下行。
"compilerOptions": {
...other settings,
"typeRoots": ["@types", "node_modules/@types"],
...other settings
}
就是这样。它应该适用于这些更改。
THE END
二维码