【发布时间】:2021-05-12 22:19:13
【问题描述】:
您好,我正在使用 Express 和 typescript 创建一个 api,并且我正在尝试扩展 Request 以添加用户属性。所以我在谷歌上搜索并在stackoverflow上找到了多个解释如何做到这一点的帖子,但我有一个奇怪的错误。我已经声明了我的类型,所以我可以在 vscode 上编写 req.user 并且我没有收到任何错误。 VScodre 认识到 user 是 Request 的一个属性,但是当我尝试编译时出现错误,表明我的请求对象没有 user 属性。好像我没有扩展 Request 对象
这是我的界面:
declare namespace Express{
export interface Request{
user: any;
}
}
直接在express.d.ts文件中声明
我还编辑了我的 tsconfig 文件以添加
"typeRoots": ["@types", "node_modules/@types", "./src"]
这是错误信息:
error TS2339: Property 'user' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.
你知道是什么原因造成的吗?
【问题讨论】:
-
你在使用 ts-node 吗?如果是,请阅读我之前在这篇文章中的回复stackoverflow.com/a/67441138/15569492。应该是类似的问题,您需要将 ts-node 文件标志设置为 true
-
谢谢它解决了我的问题
-
如果您觉得它有帮助,您可以考虑在该帖子中支持我的回答,让更多人能够看到并搜索它:)
标签: node.js typescript express