salut!
pourquoi ne pas changer le corps de la requête en T ? de cette façon, je peux être sûr de ce que contient mon objet.
dans express-serve-static-core/index.d.ts ligne 438 :
interface Request<T> extends http.IncomingMessage, Express.Request {
...
...
body: T
...
...
et je l'utilise comme ceci:
updateUser = (req: Request<User>, res: Response, next: NextFunction) => {
const userToUpdate = req.body;
...
...
}
D'accord, cela devrait être changé pour les personnes qui souhaitent taper leur corps de requête, la même chose devrait s'appliquer à cookies
, params
, query
, @borisyankov qu'en pensez-vous ?
Je ne déteste pas cette idée, mais en même temps, il y a ce problème de types/express qui explique que body
a été omis pour une raison. Cette raison étant que body
n'existe pas nativement sur l'objet Express Request, mais est plutôt ajouté à cause de l'analyseur de corps.
Malheureusement, la version DefinitelyTyped de body-parser ne fonctionne pas avec la solution de contournement proposée. Donc, soit le corps doit être ajouté ici, soit DefinitelyTyped/body-parser doit être mis à jour.
Cela a du sens, je pense aussi qu'il existe un moyen d'inclure cette fonctionnalité sans casser les modifications en utilisant des génériques par défaut, par exemple :
interfare Request<B = any, Q = any, P = any, C = any> {
body: B;
query: Q;
params: P;
cookies: C;
}
Commentaire le plus utile
Cela a du sens, je pense aussi qu'il existe un moyen d'inclure cette fonctionnalité sans casser les modifications en utilisant des génériques par défaut, par exemple :