Skip to content

fileUpload TypeSrcipt check error TS2769: No overload matches this call. #330

@cqulun123

Description

@cqulun123

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/node_modules/express-fileupload/lib/index.js:30:19
30 module.exports = (options) => {
~~~~~~~
An argument for 'options' was not provided.
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';

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?

ts_issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions