import { NextFunction, Request, Response } from "express"; import * as core from "express-serve-static-core"; import { UserD } from "../models/user.model"; export type UsersTypes = UserD ; export interface MyRequest< Req extends UsersTypes | null , ReqBody = any, Params = core.ParamsDictionary, ResBody = any, ReqQuery = core.Query, Locals extends Record = Record > extends Request { user?: Req extends UsersTypes ? Req : Req | null; } export interface UserRouter { controller: (req: MyRequest, res: Response, next: NextFunction) => any; }