Angular v22

اعلام انتشار

نسخهٔ 22 Angular اصلاحات و تغییراتی را معرفی می‌کند که توسعهٔ فرانت‌اند را ساده‌تر و آمادهٔ تعامل با عامل‌های تولید کد مبتنی بر هوش مصنوعی می‌سازد. این انتشار سه پروژهٔ مهم را به وضعیت تولید می‌رساند: Signal Forms، Angular Aria و APIهای واکنش‌پذیری ناهمزمان.

ویژگی‌های کلیدی

  • Signal Forms پایدار — فرم‌های اعلان‌محور مبتنی بر سیگنال که نوع‌دهی قوی فرم‌های واکنشی را با سادگی فرم‌های مبتنی بر قالب ترکیب می‌کنند. مستندات کامل و پشتیبانی از Angular Material و Angular Aria همراه این ویژگی عرضه شده است.
  • پایداری resourceها — resource، rxResource و httpResource اکنون پایدار هستند و مدل‌سازی داده‌های ناهمزمان به‌صورت سیگنال را با پشتیبانی از chain() برای درخواست‌های وابسته و کش منابع در رندر سمت سرور امکان‌پذیر می‌کنند.
  • OnPush پیش‌فرض — استراتژی تشخیص تغییر پیش‌فرض کامپوننت‌ها به OnPush تغییر یافته و نام پیش‌فرض قبلی به Eager تغییر کرده است. این تغییر رفتار اجزاء را تحت تأثیر قرار می‌دهد و ممکن است نیاز به بازبینی برخی کامپوننت‌ها باشد.
  • تزریق وابستگی جدید — دکوراتور @Service() به‌عنوان جایگزینی برای الگوی @Injectable({ providedIn: 'root' }) معرفی شده و injectAsync امکان بارگذاری تنبل سرویس‌ها و تقسیم‌بندی کد را فراهم می‌کند. همچنین قابلیت پیش‌بارگذاری اختیاری هنگام بیکار بودن مرورگر اضافه شده است.
  • انعطاف بیشتر در قالب‌ها — پشتیبانی از سینتکس spread و rest، چندحالت (multiple case matching)، بررسی کامل never در @switch، توابع پیکانی درون‌خطی و قرار دادن کامنت داخل تگ‌ها. پیش‌نمایش مرز خطا برای قالب‌ها (@boundary) برای سه‌ماههٔ سوم 2026 برنامه‌ریزی شده است.
  • ابزارهای مرتبط با هوش مصنوعی — پشتیبانی آزمایشی WebMCP برای فراهم کردن ابزارهای برنامه و Signal Forms در دسترس عامل‌های درون‌مرورگر، همراه با Angular Agent Skills و ابزارهای توسعه‌دهندهٔ MCP.
پیش‌نمایش تغییرات Angular v22 و ابزارهای جدید

واکنش جامعه و نقدها

بحث‌ها در Hacker News حاکی از استقبال گسترده توسعه‌دهندگان از جهت‌گیری جدید است؛ عده‌ای تجربهٔ کار با نسخهٔ مدرن را مثبت توصیف کردند و بسیاری از معرفی signal-forms استقبال کردند. در مقابل، نقدها بیشتر معطوف به ابزارهای ساخت و یکپارچه‌سازی با تولیدکد خودکار است؛ برخی توسعه‌دهندگان خواهان بازنگری در نقش کامپایلر Angular و تسهیل یکپارچه‌سازی با زنجیره‌ابزارهای جایگزین مانند Vite هستند.

سازگاری، مهاجرت و نکات فنی

  • نیازمندی‌ها: Angular v22 نیازمند TypeScript نسخهٔ 6 است و پشتیبانی از Node.js 20 حذف شده است. برای جزئیات بیشتر به مستندات Angular و TypeScript مراجعه کنید.
  • دستور مهاجرت: اجرای ng update @angular/cli@^22 @angular/core@^22 راهنمای تعاملی مهاجرت را آغاز می‌کند.
  • تعدیلات خودکار (schematics): اضافه کردن ChangeDetectionStrategy.Eager به کامپوننت‌هایی که صراحتاً استراتژی مشخص نکرده‌اند، تنظیم strictTemplates: false در مواردی که لازم بوده و حذف withFetch() (کلاینت HTTP اکنون به‌صورت پیش‌فرض از Fetch استفاده می‌کند).
  • موارد نیازمند توجه دستی: مقدار پیش‌فرض paramsInheritanceStrategy اکنون 'always' است و مهاجرت خودکار برای آن ارائه نشده است. پشتیبانی از Webpack (از جمله @angular-devkit/build-angular و @ngtools/webpack) منسوخ اعلام شده و نیاز به برنامه‌ریزی برای جایگزینی دارد.

توصیه برای تیم‌ها

  1. قبل از به‌روزرسانی، در یک شاخهٔ جداگانه با کانفیگ CI تغییرات را تست کنید و وابستگی‌ها را با نسخهٔ جدید TypeScript هماهنگ کنید.
  2. تغییر پیش‌فرض تشخیص تغییر (OnPush/Eager) را در کامپوننت‌های کلیدی بررسی کنید تا احتمال بروز رگرسیون عملکردی کاهش یابد.
  3. برای پروژه‌هایی که هنوز به Webpack و پل‌های قدیمی وابسته‌اند، برنامهٔ مهاجرت برای جایگزینی ابزار ساخت یا ارزیابی گزینه‌های پشتیبانی‌شده تدوین کنید.

چشم‌انداز

Angular v22 گامی رو به جلو در جهت تجربهٔ توسعهٔ مدرن است. تثبیت Signal Forms و بهبودهای مربوط به واکنش‌پذیری ناهمزمان، کار با فرم‌ها و داده‌های ناهمزمان را ساده‌تر کرده است. ادغام اولیه با ابزارهای عامل‌های درون‌مرورگر نشان می‌دهد اکوسیستم در حال آماده‌سازی خود برای نسل جدید ابزارهای تولید کد است؛ با این حال یکپارچه‌سازی بی‌نقص با ابزارهای شخص ثالث و مهاجرت از Webpack همچنان نیازمند زمان و تلاش تیم‌ها و جامعه خواهد بود.