0Pricing
TypeScript Academy · Aula

Tipando requisições e respostas do Express

Estenda os tipos do Express para parâmetros e corpos de rotas tipados

Tipando requisições e respostas do Express é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de TypeScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de TypeScript Academy inclui 4 aulas no total.

Boas-vindas

O Express oferece tipos de TypeScript por meio de @types/express. Aprenda a tornar as rotas seguras quanto aos tipos.

Instalar tipos

Instale Express com suas definições de tipo.
npm install express
npm install --save-dev @types/express

Tipos básicos de rotas

Importe Request e Response de express.
import { Request, Response } from 'express';
app.get('/users', (req: Request, res: Response) => {
  res.json({ users: [] });
});

Parâmetros de rota tipados

Tipifique os parâmetros de caminho usando genéricos em Request.
interface Params { id: string; }
app.get('/users/:id', (req: Request<Params>, res: Response) => {
  const { id } = req.params;
});

Corpo da solicitação tipado

Tipifique o corpo da solicitação com o genérico RequestBody.
interface CreateUser { name: string; email: string; }
app.post('/users', (req: Request<{}, {}, CreateUser>, res: Response) => {
  const { name, email } = req.body;
});

Parâmetros de consulta tipados

Tipifique os parâmetros da string de consulta.
interface Query { page?: string; limit?: string; }
app.get('/users', (req: Request<{}, {}, {}, Query>, res: Response) => {
  const page = parseInt(req.query.page ?? '1');
});

Estendendo Request

Adicione propriedades personalizadas a Request por meio da ampliação de módulo.
declare global {
  namespace Express {
    interface Request { user?: User; }
  }
}

Resposta tipada

Encadeie genéricos em Response para tipificar o corpo JSON.
app.get('/me', (req: Request, res: Response<User>) => {
  res.json(req.user!); // response body must be User
});

Tipos de manipuladores de erros

Os manipuladores de erros do Express têm uma assinatura específica com quatro parâmetros.
import { ErrorRequestHandler } from 'express';
const errHandler: ErrorRequestHandler = (err, req, res, next) => {
  res.status(500).json({ error: err.message });
};

Usando Router com tipos

Tipifique um Router da mesma forma que a aplicação principal.
import { Router } from 'express';
const router = Router();
router.get('/:id', (req: Request<{ id: string }>, res) => {});

Função intermediária de validação

Use uma função intermediária tipada para validar e restringir os tipos das solicitações.
function parseBody<T>(schema: ZodSchema<T>) {
  return (req: Request, res: Response, next: NextFunction) => {
    req.body = schema.parse(req.body);
    next();
  };
}

Verificação rápida

Qual é o principal benefício de usar @types/express em um projeto TypeScript?

Recapitulação

Tipagem de Request e Response do Express: tipifique os genéricos de Request/Response para parâmetros, corpo e consulta. Estenda Request por meio da ampliação de módulo para adicionar propriedades personalizadas. Tipifique as funções intermediárias e os manipuladores de erros com suas assinaturas específicas.

Perguntas Frequentes

A aula “Tipando requisições e respostas do Express” é grátis?

Sim — o texto completo de “Tipando requisições e respostas do Express” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de TypeScript Academy, atualize para CoddyKit PRO. O curso de TypeScript Academy inclui 4 aulas no total.

O que vou aprender em “Tipando requisições e respostas do Express”?

Estenda os tipos do Express para parâmetros e corpos de rotas tipados Você pratica TypeScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar TypeScript Academy?

Nenhuma experiência prévia é necessária. TypeScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Tipando requisições e respostas do Express”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de TypeScript Academy?

Sim. Cada aula de TypeScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Configurando TypeScript com Node.js
  2. Tipando requisições e respostas do Express
  3. Middleware tipado e manipuladores de erros
  4. Variáveis de ambiente e tipagem da configuração
← Voltar para TypeScript Academy