Hvordan lage TypeScript-typeannotasjon for req.body uten å overskrive den opprinnelige Request-typen i Express?


Jeg kan gjøre noe som nedenfor for å sette typen til req.body til PersoneModel.

import { Request, Response } from 'express';

router.post('/',(req: Request<{}, any, PersoneModel>, res: Response) => {
   // req.body is now PersoneModel
}

Imidlertid overskriver jeg den opprinnelige forespørselstypen, slik som P extends core.Params=core.ParamsDictionary vist nedenfor.

interface Request<P extends core.Params = core.ParamsDictionary, ResBody = any, ReqBody = any, ReqQuery = core.Query> extends core.Request<P, ResBody, ReqBody, ReqQuery> { }

Hvordan unngår jeg dette?

Svar #1

Du kan importere ParamsDictionary fra express-serve-static-core som vist nedenfor.

import { ParamsDictionary } from "express-serve-static-core";
import { Request, Response } from 'express';


router.post('/',(req: Request<ParamsDictionary, any, PersoneModel>, res: Response) => {
   // req.body is now PersoneModel
}

Relaterte artikler