Goal: Manter a consistência na criação de novos componentes e refatorações no ecossistema Angular (versão atual/moderna), otimizando performance, verbosidade e tipagem.
Instructions:
- Standalone Components: Sempre crie componentes com a flag
standalone: true. Não declare novos componentes em módulos (NgModule). - Change Detection: Por padrão, sempre defina
changeDetection: ChangeDetectionStrategy.OnPushno@Component. - Reatividade com Signals: Priorize a utilização de
signal,computedeeffectem vez de criar cadeias complexas com RxJS (BehaviorSubject), mantendo o código síncrono onde possível. - Novo Control Flow do Angular: Utilize a sintaxe de templates nova:
@if,@else,@for(sempre comtrack),@switchem vez das diretivas estruturais antigas (*ngIf,*ngFor). - Tipagem Estrita: Todo
@Input()e métodos devem ter seus tipos estritamente declarados. Considere utilizar as novas Signals baseadas em inputs:input(),input.required().
Constraints:
- Não injete dependências através de construtor (onde fizer sentido a legibilidade), considere a função
inject(). - Evite vazar inscrições do RxJS. Se precisar assinar um observable local, use o operador
takeUntilDestroyed().