Compose HostDirectives and Pure Pipes in Angular. Use when creating attribute directives with HostDirectives or writing pure pipes in Angular. (triggers: **/*.directive.ts, **/*.pipe.ts, hostDirectives, PipeTransform, pure)
설치
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Compose HostDirectives and Pure Pipes in Angular. Use when creating attribute directives with HostDirectives or writing pure pipes in Angular. (triggers: **/*.directive.ts, **/*.pipe.ts, hostDirectives, PipeTransform, pure)
Directives & Pipes
Priority: P2 (MEDIUM)
Principles
Composition: Use hostDirectives: [TooltipDirective] on @Component or @Directive
decorators to compose behaviors without inheritance. Expose inputs/outputs via *
*hostDirectives: [{ directive: TooltipDirective, inputs: ['text'] }]**.
Pure Pipes: Decorate with @Pipe({ name: 'truncate', standalone: true, pure: true }).
Implement PipeTransform with transform(value: string, limit = 50) method. Pipes must be *
pure: true* (default) to cache results by input reference — Angular only re-runs them when
the reference changes. Do not set pure: false unless handling Observables/Arrays that mutate.
Directive Logic: Encapsulate reusable DOM manipulation or behavioral logic in standalone:
true Directives (e.g., selector: '[appHighlight]'). Inject ElementRef/Renderer2 for DOM
access.
Guidelines
Signal Inputs: Directives and Pipes support signal inputs.
Standalone: All Pipes and Directives must be standalone. Do not declare in NgModule;
import directly in component imports array. Use ng generate directive to scaffold.
Anti-Patterns
No @HostBinding/@HostListener: Use the host: {} object in the @Directive decorator — not
with @HostBinding or @HostListener (e.g., '(mouseenter)': 'show()', '[attr.aria-label]': '
text()') — these decorators are deprecated patterns.
No impure pipes for static transforms: Keep pure: true (default); use async pipe for
Observables.
No structural directives for conditionals: Use native @if/@for/@switch block syntax.