TypeScript: El operador 'satisfies' que te ahorrará un dolor de cabeza
Utiliza el operador 'satisfies' para garantizar que tus tipos cumplen con las restricciones necesarias.
A veces, definir un objeto que cumpla con una interfaz puede ser problemático si los tipos son complejos o cambian.
El truco
// ANTES (mal)
interface Config {
port: number;
secure: boolean;
}
const config1: Config = {
port: 3000,
secure: true,
extraProp: "no debería estar aquí" // TypeScript no se queja
};
// DESPUÉS (bien)
interface Config {
port: number;
secure: boolean;
}
const config2 = {
port: 3000,
secure: true,
extraProp: "no debería estar aquí"
} satisfies Config; // Aquí TypeScript lanza error: 'extraProp' no existe en tipo 'Config'
El operador satisfies asegura que config2 cumple estrictamente con la interfaz Config, capturando cualquier error de propiedades sobrantes. Así, protege contra configuraciones incorrectas que pueden colarse sin ser detectadas.
Utilizar satisfies te ayudará a mantener la integridad de datos y evitar errores en tiempo de ejecución al asegurar que los objetos se ajustan exactamente a su contrato de tipo.