React + TypeScript: tipado de props, estado y eventos

Aprende a integrar TypeScript en React para prevenir errores en tiempo de desarrollo y escalar componentes con contratos claros.

TypeScript en React no es burocracia: es una red de seguridad que detecta incoherencias antes de llegar a producción.

Tipar props, eventos y estado mejora autocompletado, refactor seguro y comunicación entre frontend y backend.

Cuanto más crece la app, más valor aporta tener contratos explícitos en componentes y hooks.

La clave no es tipar por tipar, sino modelar correctamente datos de negocio y flujos de UI.

  • Define contratos de entrada para cada componente y evita usos inválidos.
  • Una prop mal tipada puede romper UX en runtime; con TS se detecta en editor/CI.
  • Los contratos bien definidos facilitan reuso de componentes entre equipos.
  • Puedes usar `interface` o `type`; lo importante es consistencia de proyecto.
  • Tipar eventos evita errores comunes al acceder a `target` o valores de input.

Props tipadas con interfaces o type aliases

Define contratos de entrada para cada componente y evita usos inválidos.

Una prop mal tipada puede romper UX en runtime; con TS se detecta en editor/CI.

Los contratos bien definidos facilitan reuso de componentes entre equipos.

Puedes usar `interface` o `type`; lo importante es consistencia de proyecto.

Tipado de eventos en formularios

Tipar eventos evita errores comunes al acceder a `target` o valores de input.

Modelar estado con tipos de dominio

Evita `any`: define tipos que reflejen casos reales de tu producto.

Para datos API, crea tipos de entidad (`User`, `Order`, etc.) y reutilízalos en hooks/componentes.

En estados complejos, uniones discriminadas ayudan a modelar fases como loading/success/error.

Tipar bien reduce bugs sutiles y hace el código más autoexplicativo.

  • Props explícitas.
  • Eventos tipados.
  • Estado de dominio seguro.
  • Menos errores en runtime.
React
23

React + TypeScript: tipado de props, estado y eventos

Aprende a integrar TypeScript en React para prevenir errores en tiempo de desarrollo y escalar componentes con contratos claros.

Código del tema: Componentes, estado y render declarativo

📘 Teoría

Props tipadas con interfaces o type aliases

Define contratos de entrada para cada componente y evita usos inválidos.

1

Una prop mal tipada puede romper UX en runtime; con TS se detecta en editor/CI.

2

Los contratos bien definidos facilitan reuso de componentes entre equipos.

3

Puedes usar `interface` o `type`; lo importante es consistencia de proyecto.

Tipado de eventos en formularios

Tipar eventos evita errores comunes al acceder a `target` o valores de input.

onChange tipado
import { ChangeEvent, useState } from 'react';

function SearchBox() {
  const [query, setQuery] = useState('');

  const handleChange = (e: ChangeEvent<HTMLInputElement>) => {
    setQuery(e.target.value);
  };

  return <input value={query} onChange={handleChange} />;
}

Modelar estado con tipos de dominio

Evita `any`: define tipos que reflejen casos reales de tu producto.

Para datos API, crea tipos de entidad (`User`, `Order`, etc.) y reutilízalos en hooks/componentes.

En estados complejos, uniones discriminadas ayudan a modelar fases como loading/success/error.

Tipar bien reduce bugs sutiles y hace el código más autoexplicativo.

  • Props explícitas.
  • Eventos tipados.
  • Estado de dominio seguro.
  • Menos errores en runtime.

🧪 Aprende probando

Ejemplo Ejemplo: componente tipado con props opcionales Componente reusable con contrato claro y fallback seguro.

🏁 Retos

Reto Reto: tipa la prop `price` Completa el tipo de props para incluir `price` como número.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre React.

Test de React

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .