Files
2026-09-04 00:34:53 -03:00

1.6 KiB

name, description
name description
angular-access-modifiers-francisco-rangel Enforces explicit TypeScript access modifiers (public/protected/private) on every class member of an Angular component, directive, or pipe based on usage.

Angular Access Modifiers

Every field, getter/setter, and method on an Angular class must have an explicit TypeScript access modifier. Never leave members implicit.

Visibility Rules

Used in HTML template? Used only inside TS class? External access (Parent, Test, Service)? Access Modifier
Yes protected
No Yes No private
No Yes public

Instructions

  1. protected: Use for all properties, signals, getters/setters, and methods accessed directly inside the template (.html or inline template).
  2. private: Use for internal logic, helper methods, state variables, or subscriptions that are never accessed outside this single file.
  3. public: Use ONLY for @Input(), @Output(), component inputs/outputs created via functions (input(), output()), public API methods called by parents/tests, or Angular lifecycle hooks (ngOnInit, ngOnDestroy, etc.).
  4. Never leave any member without an explicit modifier.

Examples

Incorrect (Implicit or misscoped)

@Component({ ... })
export class UserProfileComponent {
  userName = signal('John'); // Implicit public (avoid)
  
  ngOnInit() { // Implicit public
    this.fetchData();
  }

  fetchData() { // Implicit public
    // ...
  }
}