Tipado de handlers del router y de Request/Response
Tipifique los handlers de rutas de Express: parámetros, consultas y cuerpos JSON; envíe respuestas tipadas con res.json y DTO reutilizables.
Tipado de handlers del router y de Request/Response es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 1 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de TypeScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de TypeScript Academy incluye 3 lecciones en total.
Introducción
Objetivo: Configure una pequeña API de Express con tipos estrictos. Tipará los parámetros de ruta, las consultas y los cuerpos JSON, y después devolverá JSON tipado con res.json.
- Interfaces DTO
Request<P, Res, Body, Q>res.jsontipado
Configuración del servidor
Inicialice Express y habilite el análisis de JSON. Mantenga el endpoint de salud pequeño y tipado con Request/Response.
import express, { Request, Response } from "express"
const app = express()
app.use(express.json())
app.get("/", (_req: Request, res: Response) => {
res.type("text/plain").send("OK")
})
app.listen(3000, () => console.log("http://localhost:3000"))Parámetros y query
Tipa explícitamente cada posición: Params, Query y ResBody. El autocompletado ayuda a evitar errores tipográficos.
import { Request, Response } from "express"
type Params = { id: string }
type Query = { verbose?: "1" | "0" }
type ResBody = { id: string; name: string; details?: string }
export function getUser(req: Request<Params, ResBody, unknown, Query>, res: Response<ResBody>) {
const { id } = req.params
const { verbose } = req.query
const body: ResBody = { id, name: "Ada", details: verbose === "1" ? "Loves math" : undefined }
return res.status(200).json(body)
}Body y res tipados
Anote el cuerpo para POST/PUT y también una respuesta tipada. Sus DTO sirven además como documentación.
import { Request, Response } from "express"
type CreateUserBody = { name: string }
type CreateUserRes = { id: string; name: string }
export function createUser(req: Request<{}, CreateUserRes, CreateUserBody>, res: Response<CreateUserRes>) {
const { name } = req.body
const result: CreateUserRes = { id: "u_1", name }
return res.status(201).json(result)
}Conectar rutas
Componga controladores pequeños y tipados. Los parámetros de ruta se validan haciendo coincidir la plantilla (por ejemplo, :id).
import express from "express"
import { getUser } from "./getUser"
import { createUser } from "./createUser"
const app = express()
app.use(express.json())
app.get("/users/:id", getUser)
app.post("/users", createUser)
app.listen(3000, () => console.log("http://localhost:3000"))Consejos
Consejos:
- Mantenga los DTO pequeños y reutilícelos entre los controladores.
- Prefiera literales de unión para los valores restringidos de las consultas.
- Devuelva códigos de estado precisos y JSON tipado.
Comprobación del tipado de Express
Comprobación rápida: ¿cómo se tipa un controlador de Express con parámetros y un cuerpo JSON?
Resumen
Resumen: Ha tipado los parámetros de ruta, las consultas, los cuerpos y las respuestas. El mismo patrón se aplica también a routers y middlewares.
Aprende TypeScript con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 101
- Lecciones
- 352
Preguntas frecuentes
¿La lección «Tipado de handlers del router y de Request/Response» es gratis?
Sí — el texto completo de «Tipado de handlers del router y de Request/Response» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de TypeScript Academy, actualiza a CoddyKit PRO. El curso de TypeScript Academy incluye 3 lecciones en total.
¿Qué aprenderé en «Tipado de handlers del router y de Request/Response»?
Tipifique los handlers de rutas de Express: parámetros, consultas y cuerpos JSON; envíe respuestas tipadas con res.json y DTO reutilizables. Practicas TypeScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar TypeScript Academy?
No se requiere experiencia previa. TypeScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 3.
¿Cuánto tiempo toma la lección «Tipado de handlers del router y de Request/Response»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de TypeScript Academy?
Sí. Cada lección de TypeScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Tipado de handlers del router y de Request/Response
- Validación de esquemas con zod e inferencia a TS
- Middleware de errores y tipos Result