¿Cuándo prefieres `interface` y cuándo `type` por motivos de diseño y mantenimiento?
¿Cuándo prefieres `interface` y cuándo `type` por motivos de diseño y mantenimiento? en TypeScript: criterios sobre arquitectura y interfaces, errores comune...
Esta pregunta de TypeScript sobre "Cuándo prefieres interface y cuándo type por motivos de diseño y mantenimiento" deja ver rápido si conviertes arquitectura en decisiones operativas o si te quedas en teoría.
En un nivel intermedio interesa ver si colocas bien los límites de "Cuándo prefieres interface y cuándo type por motivos de diseño y mantenimiento", justificas por qué eliges ese patrón y explicas cómo lo mantendrías legible para el equipo.
Qué evalúa el entrevistador
- Si distingues qué parte de "Cuándo prefieres
interfacey cuándotypepor motivos de diseño y mantenimiento" pertenece a arquitectura y cuál debería resolverse en interfaces. - Si conviertes la respuesta en criterios observables: límites claros, impacto en el mantenimiento y forma de detectar regresiones.
- Si separas decisiones reversibles de irreversibles y justificas la arquitectura por velocidad de cambio, no por preferencia personal.
Respuesta sólida
- Empieza por el borde del problema: dominios, módulos o responsabilidades que hoy cambian a ritmos distintos en TypeScript.
- Justifica dónde pondrías las fronteras, qué acoplamientos aceptarías al principio y qué señal te haría revisar la decisión.
- Cierra con un criterio de validación real: coste de cambio, tiempo de entrega, número de puntos tocados o incidencias evitadas.
Compromisos y errores comunes
- Abrir más capas de las necesarias suele esconder la lógica importante y hacer más lenta la entrega sin resolver el acoplamiento real.
- Una arquitectura que nadie del equipo puede explicar en una pizarra rara vez aguanta bien el paso del tiempo.
Ejemplo de código
Un ejemplo pequeño ayuda a ver dónde colocarías la lógica de arquitectura en "Cuándo prefieres interface y cuándo type por motivos de diseño y mantenimiento" y qué parte dejarías derivada o encapsulada.
type LoadingState<T> =
| { status: "idle" }
| { status: "loading" }
| { status: "success"; data: T }
| { status: "error"; message: string };
function isSuccess<T>(state: LoadingState<T>): state is { status: "success"; data: T } {
return state.status === "success";
}
const state: LoadingState<number> = { status: "success", data: 42 };
if (isSuccess(state)) console.log(state.data);
Lo importante no es la API concreta, sino que la solución hace visible la fuente de verdad, el tratamiento del error y el punto exacto donde arquitectura se sincroniza con interfaces dentro de "Cuándo prefieres interface y cuándo type por motivos de diseño y mantenimiento" en TypeScript.
Ejemplo o caso real
Un caso creíble para "¿Cuándo prefieres interface y cuándo type por motivos de diseño y mantenimiento?" aparece cuando una funcionalidad de TypeScript mezcla arquitectura con interfaces y el equipo empieza a tocar demasiados puntos para un cambio pequeño. Ahí conviene probar la solución sobre una pantalla o flujo acotado, medir si reduce fricción y solo después extender el patrón.
Frase corta de entrevista
Prefiero una solución comprobable y reversible a una respuesta brillante que nadie sepa mantener dentro de seis meses.
Marcarla como leída actualiza tu progreso.