Функция ошибки TypeScript Express - PullRequest
0 голосов
/ 07 мая 2018

Каковы типы четырех параметров для функции обработки ошибок при кодировании в Typescript?

app.use((err: ??, req: ??, res: ??, next: ??) => { });

Я использую VS Code, и подсказки не предлагаются. Я получаю красные волнистые линии под всеми четырьмя параметрами.

Ошибка говорит: «Параметр неявно имеет« любой »тип». На самом деле меня смущает это сообщение. Если он воспринимает это как тип any, то разве это не правильный выбор?

1 Ответ

0 голосов
/ 07 мая 2018

Сама функция имеет следующую подпись (взято из DefinuallyTyped ):

export type ErrorRequestHandler = (err: any, req: Request, res: Response, next: NextFunction) => any;

Таким образом, вы можете объявить функцию как переменную типа ErrorRequestHandler или ввести параметры в соответствии с этим определением.

Примечание. Типы "express-serve-static-core" импортируются типами "express", где я искал приведенное выше определение.

Относительно вашего второго вопроса, относящегося к неявной any, именно «неявная» часть вызывает проблему. Если вы введете явно как any, тогда не будет никакой ошибки (но не будет любые печатания либо).

Вы также можете отключить noImplicitAny в конфигурации вашего компилятора, но я бы не рекомендовал это лично, поскольку это защищает вас от нескольких классов ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...