v22
2026年6月Signalベースの新機能(Signal Forms・Resource API)が安定化。変更検知の既定がOnPushになり、HttpClientはFetchが既定に。TypeScript 6が必須です。
Signal Forms が安定版に
Signal(シグナル)を土台にした新しいフォームAPI、Signal Forms が安定版になり本番利用できます。従来のフォームより、入力値と状態をリアクティブに扱いやすいのが特徴です。
minDate() / maxDate() などのバリデータ、blur時のデバウンス、非同期バリデータの改善も入りました。
Resource API が安定版に
非同期データの取得・状態管理を担う Resource API(resource() / rxResource() / httpResource())が本番利用可能になりました。読み込み中・成功・失敗といった状態をシグナルとして自然に扱えます。
チェーン(連鎖)の改善や、id オプションによるSSR(サーバーサイドレンダリング)時のキャッシュ対応も追加されました。
変更検知の既定が OnPush に
コンポーネントの変更検知(画面の再描画を判断する仕組み)の既定が、これまでの Eager から OnPush に変わりました。OnPush は入力やイベントなど必要なときだけ再描画するため、パフォーマンスが向上します。
既存コンポーネントの挙動を保つための自動マイグレーションが用意されています。
HttpClient が Fetch を既定に / @Service デコレータ
HttpClient が内部で XMLHttpRequest ではなく Fetch API を既定で使うようになりました(withFetch() は非推奨に、レガシー用に withXhr() あり)。
新しい @Service デコレータが追加され、ルートインジェクタに登録するサービスを短く宣言できます(@Injectable({ providedIn: 'root' }) と同等)。アクセシビリティ部品の @angular/aria も正式版になりました。
// 新しい @Service は providedIn: 'root' の短縮形
@Service()
export class UserService {
// ...
}
// 従来の書き方(同等)
// @Injectable({ providedIn: 'root' })TypeScript 6 が必須
Angular v22 は TypeScript 6 を必須とし、5.9以前はサポート対象外になりました。アップグレード時はTypeScriptのバージョンも合わせて上げる必要があります。