Las entrevistas de Angular cubren dependency injection, RxJS, change detection, y TypeScript — el framework es opinado, así que las preguntas testean si entiendes su maquinaria. Aquí están las más comunes con respuestas modelo. Junior: teoría básica, definiciones y casos prácticos simples.
1
¿Qué es dependency injection en Angular y por qué existe?
Respuesta
Declaras qué necesita una clase en su constructor y Angular lo provee, en vez de que la clase construya sus propias dependencias. Existe para que al mismo componente se le pueda dar un servicio real en la app y uno falso en un test sin cambiar su código. providedIn: 'root' hace de un servicio un singleton para toda la app.
2
¿Cuál es la diferencia entre un componente, una directiva y un pipe?
Respuesta
Un componente es una directiva con un template — renderiza algo. Una directiva cambia el comportamiento o apariencia de un elemento existente sin un template propio. Un pipe transforma un valor para mostrarlo. Si estás agregando markup es un componente, si estás decorando markup es una directiva.
3
¿Qué es un Observable y en qué se diferencia de una Promise?
Respuesta
Una Promise resuelve una vez. Un Observable es un stream que puede emitir muchas veces, se puede cancelar desuscribiéndose, y no hace nada hasta que se suscribe. Esa pereza es la parte que la gente se pierde: una llamada HTTP a la que nunca te suscribes nunca se dispara, por eso un método de servicio que devuelve un Observable todavía no hizo un request.
4
¿Cuándo tienes que desuscribirte, y cuándo no?
Respuesta
Tienes que cuando el stream no completa por sí solo — valueChanges, un evento de router, un interval — si no la suscripción sobrevive al componente y lo mantiene en memoria. No tienes que para HttpClient, que completa después de una emisión. El pipe async se desuscribe por ti, por eso es la forma preferida.
5
¿Cuál es la diferencia entre un formulario template-driven y uno reactive?
Respuesta
Template-driven pone el modelo en el template con ngModel y conviene para un formulario pequeño. Reactive construye el árbol de controles en la clase, lo que hace la validación, campos dinámicos y testing directos porque el formulario es un objeto que puedes inspeccionar. Cualquier cosa con campos condicionales o reglas cross-field quiere reactive.
6
¿Qué hace un módulo, y qué cambió con los standalone components?
Respuesta
Un NgModule agrupaba declarations, imports y providers. Los standalone components declaran sus propios imports y eliminan la capa de módulo para la mayoría de los casos — importas lo que un componente usa junto al componente. El código nuevo debería ser standalone; los NgModules permanecen porque existen codebases grandes.