请帮帮忙,我收到了这个错误
src/app/middlewares/鉴证:16:17-错误TS2339:属性'user‘在'Request’类型上不存在。
16 req.user = user;
我已经创建了.d.ts文件,并将其包含在tsconfig文件中。但是我仍然不能运行这段代码。
请查找附呈的截图



发布于 2021-08-03 18:50:26
src/
- types/
- express/
- index.d.tsimport express from "express";
declare global {
namespace Express {
interface Request {
user?: Record<string,any>
}
}
}{
"compilerOptions": {
"typeRoots" : ["./src/types", "./node_modules/@types"]
}
}这应该能行
发布于 2021-01-22 16:08:43
我之前也被困在同一个问题上了。我就是这样解决的。
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
}就是这样。它应该适用于这些更改。
发布于 2022-05-18 10:17:33
另一种方式是:
import { NextFunction, Request, Response } from 'express';
interface IDecode {
address: string,
role: string,
iat: number,
exp: number
};
interface RequestWithUserRole extends Request {
user?: IDecode,
}
const parseToken = (secret: string) =>
async (req: RequestWithUserRole, res: Response, next: NextFunction) => {
try{
const token = req.headers?.authorization?.split(' ')[1];
// console.log(req.headers?.authorization);
if (!token) {
return res.status(403).json({message: 'Token not found'})
}
const decodedData = <IDecode> jwt.verify(token, secret);
req.user = decodedData;
// console.log(decodedData);
return next();
}
catch(e) {
return res.status(500).json({e})
}
};https://stackoverflow.com/questions/65848442
复制相似问题