Типизация запросов и ответов Express
Расширяйте типы Express для типизированных параметров маршрутов и тел запросов
«Типизация запросов и ответов Express» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 4 уроков всего.
Добро пожаловать
Установка типов
npm install express
npm install --save-dev @types/expressБазовые типы маршрутов
import { Request, Response } from 'express';
app.get('/users', (req: Request, res: Response) => {
res.json({ users: [] });
});Типизация параметров маршрута
interface Params { id: string; }
app.get('/users/:id', (req: Request<Params>, res: Response) => {
const { id } = req.params;
});Типизированное тело запроса
interface CreateUser { name: string; email: string; }
app.post('/users', (req: Request<{}, {}, CreateUser>, res: Response) => {
const { name, email } = req.body;
});Типизированные параметры запроса
interface Query { page?: string; limit?: string; }
app.get('/users', (req: Request<{}, {}, {}, Query>, res: Response) => {
const page = parseInt(req.query.page ?? '1');
});Расширение Request
declare global {
namespace Express {
interface Request { user?: User; }
}
}Типизированный ответ
app.get('/me', (req: Request, res: Response<User>) => {
res.json(req.user!); // response body must be User
});Типы обработчиков ошибок
import { ErrorRequestHandler } from 'express';
const errHandler: ErrorRequestHandler = (err, req, res, next) => {
res.status(500).json({ error: err.message });
};Использование Router с типами
import { Router } from 'express';
const router = Router();
router.get('/:id', (req: Request<{ id: string }>, res) => {});Промежуточное ПО для валидации
function parseBody<T>(schema: ZodSchema<T>) {
return (req: Request, res: Response, next: NextFunction) => {
req.body = schema.parse(req.body);
next();
};
}Быстрая проверка
Итоги
Часто задаваемые вопросы
Урок «Типизация запросов и ответов Express» бесплатный?
Да — полный текст урока «Типизация запросов и ответов Express» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 4 уроков всего.
Чему я научусь в уроке «Типизация запросов и ответов Express»?
Расширяйте типы Express для типизированных параметров маршрутов и тел запросов Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать TypeScript Academy?
Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Типизация запросов и ответов Express»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке TypeScript Academy?
Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Настройка TypeScript с Node.js
- Типизация запросов и ответов Express
- Типизированное промежуточное ПО и обработчики ошибок
- Переменные окружения и типизация конфигурации