Frontend
Angular
A full TypeScript framework for large web apps: routing, forms, DI and tooling out of the box.
What it is
Angular is a full rewrite of AngularJS (2010) that Google released in 2016. Apps are written in TypeScript, and the framework offers official solutions for routing, forms, HTTP, testing and builds (Angular CLI).
The core: components, templates, dependency injection and RxJS for async streams. Newer versions added signals for reactive state, standalone components without NgModule, and a new control flow syntax (@if, @for).
It gives a single project structure, so it works well for large teams and long projects, especially in the enterprise. The price is a steeper learning curve than React or Vue.
Use it when
- A large enterprise app with many teams and shared conventions.
- You need forms, routing, DI and testing in one official set.
- The team already knows TypeScript and OOP (Java, C#).
Avoid it when
- A small site or landing page: the framework is too heavy.
- A quick prototype where you want minimal ceremony.
Key concepts
- Component
- A class with a
@Componentdecorator, a template and styles. - Dependency injection
- Services are created and provided by the framework through
inject()or the constructor. - Signals
- Reactive values that update only the dependent parts of the UI.
- RxJS Observables
- Event streams for HTTP, forms and routes with operators like
mapandswitchMap. - Angular CLI
- Code generation, builds, tests and version upgrades with the
ngcommand.
Example
Cheat sheet
| Command or code | What it does |
|---|---|
ng new my-app | Creates a project |
ng serve | Starts the dev server |
ng generate component card | Generates a component |
ng generate service api | Generates a service |
ng build | Production build |
ng test | Runs unit tests |
count = signal(0) | Reactive state with a signal |
@if (ok) { ... } @else { ... } | Condition in a template |
@for (x of xs; track x.id) { } | Loop in a template |
http = inject(HttpClient) | Gets a dependency with inject |
How to learn it
- Learn TypeScript, because Angular is built on it.
- Take the Angular course on ShortLesson and create a project with the Angular CLI.
- Learn components, templates, data binding and the new control flow syntax.
- Study services and dependency injection.
- Meet signals for reactive state.
- Understand RxJS: Observable, pipe and the map and switchMap operators.
- Add routing, reactive forms and HttpClient.
- Write tests and build an app against an API.
Interview questions
1. What is dependency injection in Angular?
The framework creates services and passes them to the components that request them. This makes testing easier (a service can be swapped) and separates code into layers.
2. How do signals differ from RxJS?
A signal is a synchronous value that tracks dependencies and holds current state. An observable describes a stream over time. Signals suit UI state, RxJS suits async events.
3. What does the OnPush change detection strategy do?
The component is checked only when its
@Inputchanges, an event fires or a signal updates. That reduces checks and speeds up the app.4. What is a standalone component?
A component that does not need an NgModule: it declares its own dependencies in
imports. In recent versions it is the default way.
Comparisons with this technology
Related technologies
Logos belong to their owners and are used for identification only. Icons: Simple Icons (CC0), Devicon (MIT).