如何解决属性 'user' 不存在于类型 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'
请帮忙,我收到此错误
src/app/middlewares/authentication.ts:16:17 - 错误 TS2339:属性 'user' 不存在于类型 'Request 16 req.user = 用户; 我已经创建了 .d.ts 文件并将其包含在 tsconfig 文件中。我仍然无法运行此代码 请找到附件截图
解决方法
我之前遇到了同样的问题。这是我解决它的方法。
- 我在我的项目中创建了一个名为 @types 的单独目录,用于声明合并工作。
- 接下来,我在其中创建了一个名为 index.d.ts 的文件,其中包含以下内容。请注意,我们需要在 global 中声明我们自己的请求。此外,导入 express 也很重要。
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
}
就是这样。它应该适用于这些更改。
,- 在你的 src 目录中创建一个 types 文件夹
- 在 types 文件夹中创建一个文件夹,其中包含您要扩展的包的名称。 (在这种情况下express)。
- 在该文件夹中创建一个 index.d.ts 文件
src/
- types/
- express/
- index.d.ts
- 将此代码添加到索引文件中
import express from "express";
declare global {
namespace Express {
interface Request {
user?: Record<string,any>
}
}
}
- 记得更新你的 tsconfig.json 文件
{
"compilerOptions": {
"typeRoots" : ["./src/types","./node_modules/@types"]
}
}
这应该有效
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。