用途
Angular Expert 是一个针对 Angular 17+ 的技能,主要解决 Angular 开发中的常见陷阱(gotchas)和决策标准(decision criteria)。它特别指出 Claude 在 Angular 相关任务中容易出错的地方,帮助开发者或 AI 助手在编写 Angular 代码时做出更正确的选择。
主要能力
该技能围绕四组关键决策和若干具体陷阱展开。
关键决策
- Signals vs Observables:同步 UI 状态使用 Signals;异步流或 HTTP 使用 Observables;两者之间通过
toSignal()/toObservable()进行桥接。 - NgRx vs Signals:复杂共享状态且带副作用时使用 NgRx;组件级或简单应用状态使用 Signals。
- Standalone vs Module:Angular 17+ 中始终使用 Standalone;Module 仅用于遗留代码。
- OnPush vs Default:始终使用 OnPush,但需要配合不可变模式(immutable patterns)。
常见陷阱
@for必须提供track,应使用track item.id而非trackBy函数。takeUntilDestroyed(this.destroyRef)必须在注入上下文(injection context)中调用,即构造函数或字段初始化时。toSignal()返回Signal<T | undefined>,需要处理undefined情况。- 类型化表单应使用
NonNullableFormBuilder,普通FormBuilder会丢失类型。 @defer (on viewport)需要@placeholder块,否则不会渲染任何内容。- 函数式守卫(functional guards)和拦截器(interceptors)应使用
inject()而非构造函数依赖注入。
使用方式
该技能以文本形式提供 Angular 17+ 的决策指南和陷阱列表。资料中提到“Use Context7 for full Angular docs”,即完整 Angular 文档可参考 Context7。技能本身不包含安装命令或代码示例,仅以结构化文本列出决策和注意事项。
适用场景
适用于使用 Angular 17+ 进行开发的场景,尤其是需要决定状态管理方案、变更检测策略、组件组织方式时。也适用于希望避免 Angular 常见错误的 AI 辅助编程场景。
限制
资料未提供该技能的具体安装方式、收费模式、平台支持或效果保证。技能内容仅覆盖 Angular 17+ 的部分决策和陷阱,并非完整 Angular 文档。