【发布时间】:2023-04-03 14:30:02
【问题描述】:
请帮忙,我遇到了这个错误
src/app/middlewares/authentication.ts:16:17 - 错误 TS2339:“请求 16 req.user = 用户; 我创建了 .d.ts 文件并将其包含在 tsconfig 文件中。我仍然无法运行此代码 请查看附件截图
【问题讨论】:
标签: node.js typescript express mern
请帮忙,我遇到了这个错误
src/app/middlewares/authentication.ts:16:17 - 错误 TS2339:“请求 16 req.user = 用户; 我创建了 .d.ts 文件并将其包含在 tsconfig 文件中。我仍然无法运行此代码 请查看附件截图
【问题讨论】:
标签: node.js typescript express mern
src/
- types/
- express/
- index.d.ts
import express from "express";
declare global {
namespace Express {
interface Request {
user?: Record<string,any>
}
}
}
{
"compilerOptions": {
"typeRoots" : ["./src/types", "./node_modules/@types"]
}
}
这应该可以工作
【讨论】:
user 对象是否必须是可选的?我没有收到错误(到目前为止),但事实并非如此。
我之前也遇到过同样的问题。这是我解决它的方法。
import * as express from "express"
declare global {
namespace Express {
interface Request {
user? : Record<string,any>
}
}
}
"compilerOptions": {
...other settings,
"typeRoots": ["@types", "node_modules/@types"],
...other settings
}
就是这样。它应该适用于这些更改。
【讨论】:
typeRoots 放入compilerOptions 中,正如他在答案中所显示的那样。我把它们放在外面。感谢您的回答!
["./types", "node_modules/@types"] 而不是["node_modules/@types", "./types"]