属性'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 文件中。我仍然无法运行此代码

请找到附件截图

在此处输入图片说明

回答

我之前被困在同样的问题上。这是我解决它的方法。

  1. 我在我的项目中创建了一个名为 @types 的单独目录,用于声明合并工作。
  2. 接下来,我在其中创建了一个名为 index.d.ts 的文件,其中包含以下内容。请注意,我们需要在 global 中声明我们自己的请求。此外,进口快递也很重要。
import * as express from "express"
declare global {
    namespace Express {
        interface Request {
            user? : Record<string,any>
        }
    }
}
  1. 我在 tsconfig.json 中的 compilerOptions 下添加了以下行。
 "compilerOptions": {
     ...other settings,
     "typeRoots": ["@types", "node_modules/@types"],
     ...other settings
 }

就是这样。它应该适用于这些更改。


以上是属性'user'不存在于类型'Request&lt;ParamsDictionary,any,any,ParsedQs,Record&lt;string,any&gt;&gt;'的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>