When a Todo property updates, you still must create a new Array of Todos and assign a new reference. This lesson walks you through refactoring from the current approach to the immutable approach.
this.todos = [ ...this.todos.slice(0, i), todo, ...this.todos.slice(i + 1) ];
I don't understand how the todo item being toggled is being removed when it's being added back to the array in the todoToggle function?
Answered my own question by looking back at previous code. I had forgotten about the 'started pipe' that was created in an earlier lesson, which is filtering the list of todo items that are then outputted by the *ngFor.