Stable Release in branch 14.0
14.3.0
Released 13 Mar 2023
(3 years ago)
SoftwareAngular
Version14.0
Initial release14.0.0
02 Jun 2022
(4 years ago)
Latest release14.3.0
13 Mar 2023
(3 years ago)
Active support end02 Dec 2022
(Ended 3 years ago)
Security support end15 May 2024
(Ended 2 years ago)
Commercial support
(HeroDevs-NES)
Yes
Release noteshttps://github.com/angular/angular/releases/tag/14.0.0
Source codehttps://github.com/angular/angular/tree/14.3.0
Documentationhttps://angular.io/docs
Angular 14.0 ReleasesView full list

What Is New in Angular 14.0

tr>
Category Key Changes
New Features Standalone Components, Typed Angular Forms, Streamlined Page Title Access
Developer Experience Enhanced Template Diagnostics, Extended Developer Preview
Performance & Changes Tree-shakable Error Messages, Bind to Protected Members

What are the major developer experience improvements?

Angular 14 introduces Standalone Components, a developer preview feature that aims to simplify Angular application architecture. This allows developers to build components, pipes, and directives without being forced into NgModules. It's a step towards a more granular and flexible way of composing applications.

The update also brings strongly-typed forms, a long-requested feature. This provides automatic type checking for form controls and groups, catching errors at compile time instead of runtime. In practice, this means fewer bugs related to form data access and manipulation.

Enhanced template diagnostics offer more insights directly in the template. The compiler can now detect and warn you about a wider range of common mistakes, like invalid two-way bindings or missing Control Flow operators, making development smoother and more intuitive.

How does the new standalone components feature work?

Standalone Components are defined by setting the standalone: true flag in their decorator. This means they manage their own dependencies directly, importing necessary components and directives instead of relying on a declaring NgModule. This reduces boilerplate and can make large applications easier to reason about.

You can bootstrap an entire application using a standalone component as the root. The bootstrapApplication function is provided for this purpose, offering a more direct and module-free way to start your app. This matters because it opens the door for future simplifications in the Angular bootstrap process.

import { Component } from '@angular/core';
import { CommonModule } from '@angular/common';

@Component({
  standalone: true,
  imports: [CommonModule],
  selector: 'app-root',
  template: `<h1>Hello World</h1>`
})
export class AppComponent { }

What changed with Angular Forms in this release?

Angular Forms are now fully typed. The FormControl, FormGroup, and FormArray classes are generic, allowing you to specify the type of data they hold. This enables superior autocompletion in IDEs and compile-time type checking, drastically reducing a whole class of form-related bugs.

You can define a form group with a specific interface, and the compiler will enforce it. This is a significant upgrade for developer experience and application robustness, as it catches mismatches in data structure early in the development cycle.

interface LoginForm {
  email: FormControl<string>;
  password: FormControl<string>;
}

const login = new FormGroup<LoginForm>({
  email: new FormControl('', {validators: Validators.required}),
  password: new FormControl('', {validators: Validators.required}),
});

Are there any other notable changes for developers?

Accessing the page title is now more straightforward with the new TitleStrategy service. You can inject the Title service anywhere in your application to update the browser title dynamically, providing more flexibility than the previous router-based approach.

The compiler can now tree-shake error messages. This means error codes for common runtime errors are extracted, resulting in smaller production bundles since the full error messages are only loaded in development mode.

Template compilation has been improved to allow binding to protected component members. This removes a previous limitation and gives developers more flexibility in structuring their component class APIs without needing to make everything public.

FAQ

Are Standalone Components production-ready in Angular 14?
No, they are currently in developer preview. The Angular team is seeking feedback on the API and developer experience before stabilizing it for production use in a future release.

Do I have to use Standalone Components?
No, the NgModule system remains fully supported and is not deprecated. Standalone Components are an optional, complementary way to build applications.

How do I update my existing forms to use the new typings?
You can gradually adopt typed forms. Start by adding generic types to your existing FormControl and FormGroup declarations. The Angular CLI and language service will help identify areas that need adjustment.

What is the benefit of tree-shakable error messages?
It reduces your application's production bundle size by removing lengthy error message strings, which are only truly needed during development and debugging phases.

Can I use the new title service with the router?
Yes, you can provide a custom TitleStrategy to define how titles are set based on router state, or you can use the Title service imperatively anywhere in your application for more control.

Releases In Branch 14.0

VersionRelease date
14.3.013 Mar 2023
(3 years ago)
14.2.1221 Nov 2022
(3 years ago)
14.2.1116 Nov 2022
(3 years ago)
14.2.1009 Nov 2022
(3 years ago)
14.2.903 Nov 2022
(3 years ago)
14.2.826 Oct 2022
(3 years ago)
14.2.719 Oct 2022
(3 years ago)
14.2.612 Oct 2022
(3 years ago)
14.2.505 Oct 2022
(3 years ago)
14.2.428 Sep 2022
(3 years ago)
14.2.321 Sep 2022
(3 years ago)
14.2.215 Sep 2022
(3 years ago)
14.2.107 Sep 2022
(3 years ago)
14.2.025 Aug 2022
(3 years ago)
14.1.317 Aug 2022
(3 years ago)
14.2.0-rc.017 Aug 2022
(3 years ago)
14.2.0-next.110 Aug 2022
(3 years ago)
14.1.210 Aug 2022
(3 years ago)
14.1.103 Aug 2022
(4 years ago)
14.2.0-next.003 Aug 2022
(4 years ago)
14.0.720 Jul 2022
(4 years ago)
14.1.020 Jul 2022
(4 years ago)
14.0.613 Jul 2022
(4 years ago)
14.1.0-rc.013 Jul 2022
(4 years ago)
14.0.506 Jul 2022
(4 years ago)
14.1.0-next.406 Jul 2022
(4 years ago)
14.0.429 Jun 2022
(4 years ago)
14.1.0-next.329 Jun 2022
(4 years ago)
14.0.322 Jun 2022
(4 years ago)
14.1.0-next.222 Jun 2022
(4 years ago)
14.0.215 Jun 2022
(4 years ago)
14.1.0-next.115 Jun 2022
(4 years ago)
14.0.108 Jun 2022
(4 years ago)
14.1.0-next.008 Jun 2022
(4 years ago)
14.0.002 Jun 2022
(4 years ago)
14.0.0-rc.331 May 2022
(4 years ago)
14.0.0-rc.225 May 2022
(4 years ago)
14.0.0-rc.118 May 2022
(4 years ago)
14.0.0-rc.011 May 2022
(4 years ago)
14.0.0-next.1604 May 2022
(4 years ago)
14.0.0-next.1527 Apr 2022
(4 years ago)
14.0.0-next.1420 Apr 2022
(4 years ago)
14.0.0-next.1313 Apr 2022
(4 years ago)
14.0.0-next.1212 Apr 2022
(4 years ago)
14.0.0-next.1106 Apr 2022
(4 years ago)
14.0.0-next.1030 Mar 2022
(4 years ago)
14.0.0-next.825 Mar 2022
(4 years ago)
14.0.0-next.925 Mar 2022
(4 years ago)
14.0.0-next.716 Mar 2022
(4 years ago)
14.0.0-next.609 Mar 2022
(4 years ago)
14.0.0-next.502 Mar 2022
(4 years ago)
14.0.0-next.423 Feb 2022
(4 years ago)
14.0.0-next.317 Feb 2022
(4 years ago)
14.0.0-next.208 Feb 2022
(4 years ago)
14.0.0-next.102 Feb 2022
(4 years ago)
14.0.0-next.026 Jan 2022
(4 years ago)