TypeScript en 2025: lo que todo dev debería saber

TypeScript sigue evolucionando y cada vez trae más herramientas útiles. En este post repaso las features más relevantes que uso día a día.

El operador satisfies

Una de las adiciones más útiles de TypeScript 4.9. Te permite validar que un valor cumple con un tipo sin perder el tipo inferido:

const config = {
  port: 3000,
  host: 'localhost',
  debug: true,
} satisfies Record<string, string | number | boolean>;

// config.port sigue siendo number, no string | number | boolean

Template Literal Types

Perfectos para crear tipos de strings más específicos:

type Route = `/api/${string}`;
type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';

type Endpoint = `${HTTPMethod} ${Route}`;
// "GET /api/users" ✅
// "PATCH /api/users" ❌

Discriminated Unions

Mi patrón favorito para manejar estados en la UI:

type AsyncState<T> =
  | { status: 'idle' }
  | { status: 'loading' }
  | { status: 'success'; data: T }
  | { status: 'error'; error: Error };

Conclusión

TypeScript no es solo “JavaScript con tipos”. Es una herramienta que, bien usada, hace que tu código sea más seguro, más legible y más fácil de mantener.