feat: add submitted skills review desk
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
---
|
||||
name: angular-access-modifiers-francisco-rangel
|
||||
description: 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)
|
||||
```typescript
|
||||
@Component({ ... })
|
||||
export class UserProfileComponent {
|
||||
userName = signal('John'); // Implicit public (avoid)
|
||||
|
||||
ngOnInit() { // Implicit public
|
||||
this.fetchData();
|
||||
}
|
||||
|
||||
fetchData() { // Implicit public
|
||||
// ...
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user