1 min read 179 words Updated Sep 24, 2026 Created Sep 24, 2026
#angular#signals

Signals are Angular's approach to state. Signals are usually used within the class of a component.

Use signal.set()to set the state value in general.
Use signal.update()to update the value based on the previous one.

number = signal(0);

increment() {
   this.number.update(n => n + 1);
} 

Computed signals

Use computed signals, for creating a signal based on another signal

import { signal, computed } from '@angular/core';

number = signal(0);
doubleNumber = computed(() => this.number() * 2);

Arrays and objects

Creating a signal-array:

todoList = signal<string[]>(['Learn Angular', 'Learn React', 'Learn Vue']);

Iterating over the list:

<ul>
  <li *ngFor="let todo of todoList()">
    {{ todo }}
    <button (click)="removeTodo(todo)">X</button>
  </li>
</ul>

Types

You can the WritableSignal type for a signal which is updatable:

number: WritableSignal<number> = signal(0);
doubleNumber = computed(() => this.number() * 2);

increment() {
	this.number.update(n => n + 1);
}

Linked Signals

Models

model() creates a signal for two-way-data binding, so it can be used as an input for Forms e. g. - not confused with
https://www.angulartraining.com/daily-newsletter/model-for-signal-based-2-way-data-bindings/