¿Alguna vez te has encontrado con problemas de asignación de objetos donde los tipos no encajan perfectamente, pero TypeScript no te lanza ningún error?

El truco

Antes, sin satisfies (mal):

interface Persona {
  nombre: string;
  edad: number;
}

const persona = {
  nombre: "Juan",
  edad: 30,
  direccion: "Calle Falsa 123"
} as Persona;

Después, con satisfies (bien):

interface Persona {
  nombre: string;
  edad: number;
}

const persona = {
  nombre: "Juan",
  edad: 30,
  direccion: "Calle Falsa 123"
} satisfies Persona;

El operador satisfies te asegura que el objeto cumple con el tipo especificado, pero también te avisa de propiedades adicionales innecesarias, como direccion en este ejemplo. Así, puedes detectar discrepancias sin perder la flexibilidad de incluir propiedades extra, si es que las necesitas.

Siempre es mejor prevenir sorpresas. Usa satisfies para una validación de tipos más estricta.