Angular 20 promotes key features like effect()
and linkedSignal()
to stable and introduces zoneless in Developer Preview. It’s a polish-focused release with style guide updates, profiling support, and ongoing RFCs.
"Developer Preview" -> "Stable"
Angular 20 is out. It doesn’t introduce many groundbreaking features—but instead, promotes a lot of existing ones from Developer Preview to Stable.
Among them: effect()
and linkedSignal()
. So, for those working in environments with strict rules—yes, you can now officially use Signals 😉.
Zoneless in "Developer Preview"
Another major feature getting promoted (from Experimental to Developer Preview) is zoneless.
But keep in mind: with Developer Preview — and especially Experimental — you should still expect breaking changes within the same major version. In very rare cases, a feature might even get deprecated.
resource
still in Experimental
That said, not all Experimental features are equal. Take resource() functions, for example. They’ve been available for quite some time, we already had an RFC, and the feedback has been incorporated into Angular 20.
So while still marked as experimental, resource()
feels much more mature than, say, the new Vitest support, which also landed in v20.
If you’re unsure about the current status of features, Jérôme Grignon’s
is an excellent source.
Style Guide
In addition to these “status switches”, Angular 20 also ships with a modernized Style Guide:
- Prefer
readonly
andprotected
where applicable. - Use
inject()
instead of constructor injection (there’s a migration script for that). - You can now drop the
Component
suffix for component class names.
Deprecation in favor of new Control Flow
Not part of the style guide but equally notable: the structural directives *ngIf
, *ngFor
, and *ngSwitch
have been deprecated.
Not much of a problem, because the update script will do the migration automatically.
That also requires that you use ng update
and not just install the new version via npm install
directly.
DevTools Integration
There is also now also an integration with the Chrome DevTools Profiler. You have to enable it explicitly via enableProfiling()
, though.
Official Content
As always, there’s already plenty of community content out there. Officially, you can rewatch the Angular v20 Release Event on YouTube, and there’s also the official blog post on Medium.
Angular Mascot
There’s an RFC out where you can vote for the official Angular mascot. Will it be one of the two fish, or the guy with the Angular helmet?
Top comments (1)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.