Я слежу за tuto, чтобы создать полноценный API для отдыха, затем я создаю класс TS, который экспортирует новый экспресс-маршрутизатор:
import { Router, Request, Response, NextFunction } from 'express';
export class TourRouter {
public router: Router;
constructor() {
this.router = Router();
this.init();
}
public init(): void {
this.router.get(
'/',
this.getTours
);
}
private getTours(request: Request, response: Response, next: NextFunction) {
// Some JSON
const tours = {
"now": "2018-09-09 18:40:00",
"date": "2018-09-09",
"tours": [
{
"time": "8",
"places": 8,
"isPast": false
},
{
"time": "11",
"places": 8,
"isPast": false
},
{
"time": "14",
"places": 8,
"isPast": false
},
{
"time": "17",
"places": 8,
"isPast": false
}
]
};
response.send(tours);
}
}
const tourRoutes = new TourRouter();
tourRoutes.init();
export default tourRoutes.router;
Когда я хочу использовать этот новый маршрутизатор в моих приложениях следующим образом, я получаю ошибку TS, и сборка не удалась с сообщением:
Argument of type 'string' is not assignable to parameter of type 'RequestHandlerParams'
Заявление об использовании:
private _routes(): void {
let router = express.Router();
router.get('/', (request, response, next) => {
response.json({
message: 'Hello World'
});
});
this.express.use('/', router);
this.express.use('/api/v1/tours', TourRouter);
}
Как будто TourRouter, в моем случае, был не Маршрутизатором, как я ожидаю, а чем-то другим, но не знаю почему. Чего мне не хватает?
Привет