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