Definitelytyped: Objeto do corpo da solicitação @types/express para T (genérico)

Criado em 5 jun. 2017  ·  3Comentários  ·  Fonte: DefinitelyTyped/DefinitelyTyped

ei!

por que não alterar o corpo da solicitação para T? dessa forma posso ter certeza do que meu objeto contém.

na linha 438 do express-serve-static-core/index.d.ts:

interface Request<T> extends http.IncomingMessage, Express.Request {
...
...
body: T
...
...

e eu uso assim:

updateUser = (req: Request<User>, res: Response, next: NextFunction) => {
   const userToUpdate = req.body;
...
...
}

Comentários muito úteis

Faz sentido, também acho que existe uma maneira de incluir esse recurso sem interromper as alterações usando genéricos padrão, ex:

interfare Request<B = any, Q = any, P = any, C = any> {
  body: B;
  query: Q;
  params: P;
  cookies: C;
}

Todos 3 comentários

Concordo, isso deve ser alterado para pessoas que desejam digitar seu corpo de solicitação, o mesmo deve se aplicar a cookies , params , query , @borisyankov o que você acha?

Eu não odeio essa ideia, mas ao mesmo tempo há esse problema de types/express que explica que body foi deixado de fora por um motivo. Essa razão é que body não existe no objeto Express Request nativamente, mas é adicionado por causa do body-parser.

Infelizmente, a versão Definitivamente Typed do body-parser não funciona com a solução que eles propuseram. Portanto, o corpo precisa ser adicionado aqui ou o DefinedTyped/body-parser precisa ser atualizado.

Faz sentido, também acho que existe uma maneira de incluir esse recurso sem interromper as alterações usando genéricos padrão, ex:

interfare Request<B = any, Q = any, P = any, C = any> {
  body: B;
  query: Q;
  params: P;
  cookies: C;
}
Esta página foi útil?
0 / 5 - 0 avaliações