У меня такой код:
const getConfig: IGetConfigRequestHandler = async (req, res) => { ... };
type IGetConfigRequestHandler = express.CustomRequestHandler<{ }, {
code: string;
timeout: string;
screen_timeout: string;
} | string>;
import express from 'express';
import * as core from 'express-serve-static-core';
declare module 'express' {
type CustomRequestHandler<
ReqBody = any,
ResBody = any,
ReqQuery extends core.Query = core.Query,
> = express.RequestHandler<core.ParamsDictionary, Readonly<ResBody>, Readonly<ReqBody>, Readonly<ReqQuery>>;
}
Если я наведу курсор на req, я не вижу типа any, но
(parameter) req: Request<ParamsDictionary, string | Readonly<{
code: string;
timeout: string;
screen_timeout: string;
}>, Readonly<{}>, Readonly<QueryString.ParsedQs>, Record<...>>
Но когда я компилирую свой код, я получаю сообщение об ошибке:
Parameter 'req' implicitly has an 'any' type.
Отмена implicitAny в tsconfig.json для меня не является обязательной.





@PavelGatnar, это будет недопустимый синтаксис для дженериков.
=позволяет указывать значения по умолчанию для общих параметров.