Как преобразовать экспортированную функцию в тип функции? - PullRequest
1 голос
/ 27 июня 2019

Я пишу промежуточное программное обеспечение Express, и мне очень трудно определиться с тем, как я должен настраивать мои функции. Например, у меня есть обработчик ошибок:

export function errorHandler(err, req, res, next) {
  ...
}

TypeScript справедливо жалуется, что аргументы являются любыми, поэтому я приведу его (ErrorRequestHandler взято из @types/express):

export function errorHandler(err, req, res, next) {
  ...
} as ErrorRequestHandler;

Но из-за старшинства это неверно истолковано, поэтому я вынужден обернуть приведение в скобки:

export (function errorHandler(err, req, res, next) {
  ...
} as ErrorRequestHandler);

Это избавляет от ошибок типов, но при этом объявление функции становится выражением именованной функции, что-то невыразимое, не говоря уже о том, что оно выглядит уродливо. Так что я застрял в дилемме. Как я должен приводить обработчик ошибок при экспорте? Должен ли я привести к старому <> синтаксису?

Ответы [ 2 ]

2 голосов
/ 27 июня 2019

Попробуйте вместо этого.

export const errorHandler: ErrorRequestHandler = (err, req, res, next) => {
  ...
}
0 голосов
/ 27 июня 2019
export function errorHandler(err, req, res, next): ErrorRequestHandler {
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...