quand j'écris ceci:Comment utiliser @ types/express-session?
import { Request } from 'express-serve-static-core';
router.post((req: Request, res, next) => {
req.session.user = user;
}
tsc me donne une erreur: 'Object is possibly 'undefined'.
Ouais, je sais, le type d'origine express Request
n'a pas le champ session
.
Je vérifie @types/express-session
fichier index.d.ts
, trouvé ceci:
declare global {
namespace Express {
interface Request {
session?: Session;
sessionID?: string;
}
//....
}
Je veux ajouter le champ supplémentaire session
et sessionID
de type à la req
.
Comment l'utiliser? comme ceci: req: Request & ExpressSessionRequest
.
Ainsi le req
aura à la fois le type Request
d'origine et le type de champs supplémentaires auquel @types/express-session
ajoutera.
oui. mon erreur. J'oublie la 'session' et' sessionID' sont des propriétés facultatives. Mais est-ce logique? Je pense toujours que les propriétés 'session' et' sessionID' existent toujours sur 'req' quand on utilise' express-session'. – novaline
Je ne suis pas sûr 'express-session'. Si les propriétés 'session' et' sessionID' existent toujours, les typages doivent être mis à jour. Si vous souhaitez remplacer vous-même les propriétés, vous pouvez essayer l'option dans ma réponse mise à jour. – Saravana