Angular MCQ Test

20 random Angular MCQs with answers: components, templates and data binding, directives, services and dependency injection, routing, forms, HttpClient, RxJS and signals.

  • 20 random questions
  • 20 minutes
  • 36 in the question bank

No sign-up needed. Answers and explanations are shown at the end.

About this test

Angular has more built-in concepts than most frameworks, and interviews test them all: binding syntax, dependency injection, routing, reactive forms, RxJS operators and change detection.

The explanations keep each answer short so you can revise quickly.

Each attempt picks new questions at random from the question bank. You can go back and change answers until you finish or the timer runs out. At the end you see your score, the right answer and a short explanation for every question, and the lessons to revise for the ones you missed.

Sample questions with answers

1. Angular is…

  1. The same as AngularJS
  2. A complete TypeScript framework from Google
  3. A React library
Show answer

B. A complete TypeScript framework from Google — Routing, forms and HTTP are built in.

2. Which command creates a component?

  1. ng new component
  2. npm create component
  3. ng generate component name
Show answer

C. ng generate component name — Shortcut: ng g c name.

3. How do you read a signal input named course?

  1. this.course.value
  2. course.get()
  3. course()
Show answer

C. course() — Signal inputs are read by calling them.

4. [src]="logoUrl" is…

  1. Event binding
  2. Property binding (class → view)
  3. Two-way binding
Show answer

B. Property binding (class → view) — Square brackets bring data in.

5. What is required in @for?

  1. track
  2. @empty
  3. let i = $index
Show answer

A. track — track identifies items to reuse DOM nodes.

6. How do you change a signal from its current value?

  1. count.value++
  2. count = count + 1
  3. count.update(n => n + 1)
Show answer

C. count.update(n => n + 1) — set replaces; update computes.

7. providedIn: 'root' gives…

  1. One app-wide instance
  2. One per component
  3. A new instance per inject()
Show answer

A. One app-wide instance — It's tree-shakable too.

8. Where does the matched route component render?

  1. In app.config.ts
  2. In index.html body
  3. In <router-outlet>
Show answer

C. In <router-outlet> — routerLink navigates without reload.

9. Validators.requiredTrue checks…

  1. A number is positive
  2. A field is not empty
  3. A checkbox is ticked
Show answer

C. A checkbox is ticked — Perfect for accepting terms.

10. Does http.get() send a request immediately?

  1. Only with async/await
  2. No, only when subscribed
  3. Yes
Show answer

B. No, only when subscribed — Observables are lazy.