Как правильно типизировать данные, приходящие с клиента на сервер?
Например что бы при вводе req.body всплывали значения описанные в типе или интерфейсе
exports.login = (req: Request, res: Response) => {
const newUser: SignUpformType = {
username: req.body.username,
email: req.body.email,
password: req.body.password,
confirmPassword: req.body.confirmPassword
}
}
Ответы (1 шт):
Автор решения: nörbörnën
→ Ссылка
Устанавливаем определения
yarn add @types/express
И описываем роутер как в интерфейсе IRouterMatcher
import * as express from 'express';
interface SignUpformType {
username: string;
email: string;
password: string;
confirmPassword: string;
};
const fun: express.RequestHandler<Record<string, any>, any, SignUpformType, any> = (req, res) => {
const newUser: SignUpformType = req.body;
res.send('Hello World!');
};
const app: express.Application = express();
app.get<any, string, SignUpformType>('/', (req, res) => {
const newUser: SignUpformType = req.body;
res.send('Hello World!');
});
app.get('/test', fun);
app.listen(3000, function () {
console.log(`App is listening on port 3000!`);
});