I used fileUpload in my project and use tsc-silent to check the type, it raised below error:
admin@admin:/home/admin/project$ tsc-silent -p server/jsconfig.json --suppressConfig server/tsc-silent.config.cjs
Using TypeScript compiler version 4.4.3 from /home/admin/project /node_modules/typescript/lib/typescript.js
server/api/router.js:150:5 - error TS2554: Expected 1 arguments, but got 0.
server/router.js:150:5 - error TS2769: No overload matches this call.
The last overload gave the following error.
Argument of type 'Function' is not assignable to parameter of type 'RequestHandlerParams<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.
Type 'Function' is not assignable to type '(ErrorRequestHandler<ParamsDictionary, any, any, ParsedQs, Record<string, any>> | RequestHandler<ParamsDictionary, any, any, ParsedQs, Record<...>>)[]'.
150 fileUpload(),
server/node_modules/@types/express-serve-static-core/index.d.ts:163:5
163 <
~
164 P = ParamsDictionary,
...
172 ...handlers: Array<RequestHandlerParams<P, ResBody, ReqBody, ReqQuery, Locals>>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
173 ): T;
~~~~~~~~~
The last overload is declared here.
Visible errors: 2, suppressed errors: 2828
And my code is written like this:
import fileUpload from 'express-fileupload';
import express from 'express';
I used fileUpload in my project and use tsc-silent to check the type, it raised below error: admin@admin:/home/admin/project$ tsc-silent -p server/jsconfig.json --suppressConfig server/tsc-silent.config.cjs Using TypeScript compiler version 4.4.3 from /home/admin/project /node_modules/typescript/lib/typescript.js server/api/router.js:150:5 - error TS2554: Expected 1 arguments, but got 0.
150 fileUpload(),
server/router.js:150:5 - error TS2769: No overload matches this call. The last overload gave the following error. Argument of type 'Function' is not assignable to parameter of type 'RequestHandlerParams<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'. Type 'Function' is not assignable to type '(ErrorRequestHandler<ParamsDictionary, any, any, ParsedQs, Record<string, any>> | RequestHandler<ParamsDictionary, any, any, ParsedQs, Record<...>>)[]'.
150 fileUpload(),
Visible errors: 2, suppressed errors: 2828
And my code is written like this:
import fileUpload from 'express-fileupload'; import express from 'express';
const apiRouter = function apiRouter() { const router = express.Router({ mergeParams: true }); router.post( '/upload', fileUpload(), ), (req, res) => { .... }); .... return router; };
}
export { apiRouter };
And documented type seems has no problem, so how can i slove this ts check type error?