Как вы обрабатываете параметры метода экспресс-контроллера при использовании машинописи? - PullRequest
0 голосов
/ 05 января 2019

Я использую экспресс для маршрутизации, и мне не нужно использовать объект Request в моем методе контроллера. Однако я не могу найти простой способ принудительно исключить параметр Request.

Этот первый пример проходит проверку машинописи.

  public async findAll(req: Request, res: Response) {
    // search the db for all transactions
    const transactions = await Transaction.find();

    res.status(200).send({ transactions, incoming: req.body });
  }

Этот пример компилируется в действительный javascript, но не проходит проверку машинописи, так как я получаю сообщение об ошибке 'req' is declared but its value is never read.

  public async findAll(req: Request, res: Response) {
    // search the db for all transactions
    const transactions = await Transaction.find();

    res.status(200).send({ transactions });
  }

В идеале я не хочу вообще включать запрос в свой метод. Это возможно без запутанного обходного пути?

Ответы [ 2 ]

0 голосов
/ 05 января 2019

'req' is declared but its value is never read ошибка может быть вызвана опцией TypeScript noUnusedParameters. Если это мешает процессу разработки, его можно отключить в пользу аналогичного правила TSLint, которое можно настроить так, чтобы оно вызывало предупреждение вместо ошибки.

Неиспользуемые параметры можно условно подчеркнуть, чтобы избежать проверки. Это случай для TypeScript:

public async findAll(_req: Request, res: Response) {...}
0 голосов
/ 05 января 2019

Я только что нашел решение с еще несколькими пробами и ошибками. Пожалуйста, напишите, если вы можете найти более элегантное решение.

Чтобы избежать сообщения об ошибке компилятора машинописного текста, просто сделайте параметр функции пустым объектом ({}).

Код из вопроса теперь будет выглядеть как

public async findAll({}, res: Response) {
  // search the db for all transactions
  const transactions = await Transaction.find();

  res.status(200).send({ transactions });
}  

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

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