Я пытаюсь использовать TypeScript в полной мере, поэтому я избегаю any
, если это возможно.
Я видел экспресс-маршруты, определенные так:
import { Request, Response } from "express";
myRouter.route("/foo").post((req: Request, res: Response): Response => {
return res.send("Hello World");
});
Этоработает, потому что send()
возвращает экспресс Response
.
Но если я сделаю перенаправление:
myRouter.route("/bar").post((req: Request, res: Response): Response => {
return res.redirect("/baz"); // redirect() returns void!
});
Это не скомпилируется, потому что redirect()
возвращает void, а не Response
.
Опции:
- Простое решение - вернуть маршрут
any
, но я хочу избежать этого, если это возможно - Я видел кодэто делает
as unknown as Response
, но это похоже на хак
Как правильно объявить типы возвращаемых маршрутов, не используя any
?