#node.js #typescript #express #express-validator
#node.js #typescript #экспресс #экспресс-валидатор
Вопрос:
Я попытался преобразовать свои NodeJS с помощью ExpressJS в TypeScript.
У меня возникла проблема с промежуточным программным обеспечением express-validator.
Я установил определение с помощью typings:
typings install dt~express-validator --global --save
Я ожидаю req: express.Request
, что у него будут определения экспресс-валидатора (т.Е. req.checkQuery, req.checkParams и так далее).
Но при компиляции я получил…
error TS2339: Property 'checkQuery' does not exist on type 'Request'.
Должен ли я что-то импортировать, чтобы это работало?
Спасибо.
Ниже приведен мой код ..
import * as express from 'express';
let router: express.Router = express.Router();
router.get('/somepath', function (req: express.Request, res, next) {
// code
req.checkQuery('getparam', 'Invalid getparam').isInt(); // error
// code
});
export = router;
Ответ №1:
Поскольку этот вопрос немного устарел, я предположу, что на момент написания статьи типизация DefinitelyTyped устарела.
Это совсем не редкость, поскольку их типизация должна быть написана сообществом.
Начиная с версии v3.1.0 , типизации встроены в экспресс-валидатор, поэтому вам больше не нужно включать их через DefinitelyTyped .