Как объявить тип экспортируемой функции по умолчанию - PullRequest
1 голос
/ 25 марта 2019

У меня в базе кода есть несколько промежуточных программных продуктов Express, каждое из которых находится в отдельном файле.Я хочу напечатать их все как express.Handler вместо того, чтобы вводить каждый аргумент сам.

Мои файлы выглядят в основном так:

export default function exampleMiddleware (req, res, next) {
  res.send(req.body.helloWorld)
}

Но req, res и next все обрабатываются как any, потому что TypeScript не знает, что эта функция должна быть express.Handler.Как правильно это сделать?

Я не хочу изменить их на это, потому что это настолько многословно:

import * as express from 'express'

export default function exampleMiddleware (
  req: express.Request, 
  res: express.Response, 
  next: express.NextFunction
): void {
  res.send(req.body.helloWorld)
}

Я пытался:

  • declare function exampleMiddleware: express.Handler, но в нем говорится «Все подписи перегрузки должны быть экспортированы или не экспортированы»
  • Добавление let exampleMiddleware: express.Handler, но в нем говорится, что «Объединенное объявление exampleMiddleware» не может включатьэкспортная декларация по умолчанию. "

1 Ответ

0 голосов
/ 25 марта 2019

Если я избегу экспорта по умолчанию (как прокомментировал @spender), тогда я действительно могу использовать:

export const exampleMiddleware: express.Handler = function exampleMiddleware (
  req, 
  res, 
  next
) {
  res.send(req.body.helloWorld)
}

Думаю, этого достаточно для моих целей.

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