这个问题已被问过几次,但给出的答案都没有对我有用。我正在尝试扩展 ExpressRequest对象以包含存储User对象的属性。我创建了一个声明文件,express.d.ts并将它放在与我的相同的目录中tsconfig.json:
import { User } from "./src/models/user";
declare namespace Express {
export interface Request {
user: User;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试对其进行赋值secured-api.ts:
import express from 'express';
import { userService } from '../services/user';
router.use(async (req, res, next) => {
try {
const user = await userService.findByUsername(payload.username);
// do stuff to user...
req.user = user;
next();
} catch(err) {
// handle error
}
});
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
src/routes/secured-api.ts:38:21 - error TS2339: Property 'user' does not …Run Code Online (Sandbox Code Playgroud)