Angular团队正式发布了v22版本,这一版本将多个实验性功能推向了生产就绪状态,同时也为AI Agent开发提供了更完整的基础设施支持。对于已经在使用Angular的开发者来说,Signal Forms和Angular Aria是两个最值得关注的亮点。

Signal Forms是一套全新的响应式、可组合、声明式表单API,它融合了响应式表单和模板驱动表单的最佳实践,并提供完整的TypeScript支持。表单处理一直是Angular应用开发中的痛点之一,旧的API在使用复杂场景时需要编写大量模板代码,而Signal Forms通过信号机制让状态管理更加直观。对于需要处理复杂表单逻辑的企业应用来说,这个改进可以显著减少样板代码。
/**
* Getting started with Signal Forms
**/
import {signal} from "@angular/core"
import {form} from "@angular/forms/signals"
@Component({
selector: 'app-payment',
imports: [FormField],
templateURL: './app-payment.html',
})
class Payment {
readonly paymentModel = signal({
paymentType: '',
amount: 0
});
readonly f = form(paymentModel,
schema => {
required(schema.paymentType, {
message: 'Required field'
});
});
}
<!-- app-payment.html -->
<form>
<section>
<label for="payment-type">Payment Type:</label>
<select id="payment-type" [formField]="f.paymentType">
<option value="">Select a method...</option>
<option value="credit">Credit Card</option>
<option value="paypal">Payment Service</option>
</select>
@if (f.paymentType().invalid() && f.paymentType().touched()) {
<p class="error">
@for (error of f.paymentType().errors(); track error.kind) {
<span>{{ error.message }}</span>
}
</p>
}
</section>
<button type="submit" [disabled]="f().invalid()">Submit Payment</button>
</form>
Angular Aria则将12个无障碍访问模式从实验阶段提升到生产就绪。对于需要满足WCAG标准的应用来说,这是一个重要的里程碑。无障碍支持在前端框架中往往被忽视,但随着监管要求越来越严格,能够开箱即用地获得这些能力,对企业级应用开发非常有价值。

在异步响应式编程方面,Angular v22引入了resource和httpResource两个API,它们提供基于信号的异步编程 ergonomics,能够实现非阻塞的异步操作。这与当前前端开发中"避免回调地狱"的趋势一致,让异步数据获取和状态管理更加声明式。
/**
* This snippet demonstrates how httpResource enables declarative data fetching by
* automatically tracking the selectedCity signal.
*/
export class WeatherComponent {
selectedCity = signal('Chicago');
weather = httpResource<{ temperature: number; condition: string }>(() => {
return `https://api.example.com/v1/forecast/${this.selectedCity()}`;
});
changeCity(newCity: string) {
this.selectedCity.set(newCity);
}
}
对于AI开发场景,Angular MCP工具链是这次更新的重点之一。它包含devserver.start,devserver.stop和devserver.wait_for_build等命令,用于Agent代码编写场景。

Angular Agent Skills则提供了现代Angular最佳实践的集合,帮助AI Agent更好地理解和操作Angular代码。此外还有WebMCP——一个实验性的浏览器端工具定义规范,以及与Google AI Studio和Gemini Canvas的集成,让开发者可以在浏览器中直接进行Angular开发。

在其他改进方面,新的@Service装饰器简化了以往@Injectable({ providedIn: ‘root' })的写法,用于创建全局单例。injectAsync支持异步依赖注入,可以用于服务的懒加载和代码分割。路由模块也进行了增强,新增了平台Navigation API集成、withExperimentalAutoCleanupInjectors和destroyDetachedRouteHandle等内存管理功能。
模板层面支持了HTML注释、宿主指令去重、展开和rest语法、@switch多case匹配和穷尽检查,以及模板中的箭头函数。变更检测方面,OnPush成为新应用的默认策略,ChangeDetectionStrategy.Default更名为ChangeDetectionStrategy.Eager。TypeScript 6也在支持列表中。
下一个值得关注的功能是@boundaryAPI——用于模板错误边界的开发者预览版,预计在2026年第三季度发布。
<section>
<!-- Errors that bubble up through the promotional widget are caught -->
@boundary {
<app-promotional-widget />
}
@error (let err){
<!-- Fallback content -->
<app-default-promo-widget />
}
<app-cart-summary />
<app-checkout-flow />
</section>
值得注意的是,Webpack支持已被废弃,esbuild成为默认构建工具(通过TSGo实现)。
详情查看发布公告:https://blog.angular.dev/announcing-angular-v22-c52bb83a4664