Angular 17.3 Release: Finishing the Signals API

Angular 17.3 is officially out. This update finalizes the new signals-based API, delivering the missing pieces needed for effective component communication.

The previous API relied on a set of property decorators: @Input, @Output, @ViewChild, @ViewChildren, along with @ContentChild and @ContentChildren.

This new API swaps those decorators for straightforward function calls. Each of these functions returns a Signal, with the exception of the output function, and all of them expose a required method that lets you enforce a specific type.

Keep in mind that the conventional decorator-based approach remains fully operational; it has not been marked as deprecated. As has become the standard practice, the new API launches in "developer preview" status. This doesn't mean the features are unstable, but it does leave room for potential breaking changes in future minor releases.


The highlight of Angular 17.3 is the new output function. It produces a value of the new OutputEmitterRef type, which is essentially an object literal with an emit method that behaves just like the familiar EventEmitter.

The crucial distinction here is that OutputEmitterRef is no longer backed by a BehaviorSubject. If your code has been calling next rather than emit, you'll need to make some adjustments.

This architectural shift is part of a larger strategy to make RxJs optional in the long run—a topic that has been discussed previously on this platform.

That said, you're not locked out of using Observables. There's a dedicated utility called outputFromObservable that lets you bridge the gap and convert an Observable into an OutputEmitterRef.


Beyond the signals work, this release also brings official support for the latest TypeScript 5.4. Additionally, the inject function has gained new capabilities. Previously, fetching an attribute within a directive required using the constructor. Now, inject can handle that task directly.

If you want to dive deeper into the details, the official ChangeLog along with numerous blog posts and videos cover the full scope of this release.


https://github.com/angular/angular/releases/tag/17.3.0

What's new in Angular 17.3? - Ninja Squad

Angular 17.3 is out!

favicon blog.ninja-squad.com

What's new in Angular 17.3 - by Gergely Szerovay

A study guide that helps you learn the new version of Angular

favicon angularaddicts.com