📖 Scenario: You are building a simple Angular app to display user roles in a company. Each user has a role like Admin, Editor, or Viewer. You want to use an enum to manage these roles clearly and safely in your app.
🎯 Goal: Create an Angular standalone component that uses an enum to define user roles. Display the role names in a list on the page.
📋 What You'll Learn
Create an enum called UserRole with values Admin, Editor, and Viewer
Create a standalone Angular component called UserRolesComponent
Use the enum values in the component to create a list of roles
Display the list of roles in the component template using Angular's *ngFor
💡 Why This Matters
🌍 Real World
Enums help keep your Angular app organized by defining fixed sets of values like user roles, status codes, or categories. This makes your code easier to read and less error-prone.
💼 Career
Understanding enums and standalone components is important for Angular developers to write clean, maintainable code and build scalable applications.
Progress0 / 4 steps
1
Create the UserRole enum
Create an enum called UserRole with these exact members: Admin, Editor, and Viewer. Assign string values matching their names (e.g., Admin = 'Admin').
Angular
Hint
Use export enum UserRole { Admin = 'Admin', Editor = 'Editor', Viewer = 'Viewer' } to define the enum.
2
Create the UserRolesComponent standalone component
Create a standalone Angular component called UserRolesComponent with a selector app-user-roles. Import CommonModule and set standalone: true in the component decorator.
Angular
Hint
Use @Component with standalone: true and import CommonModule.
3
Add a list of roles using the UserRole enum
Inside UserRolesComponent, create a public property called roles that is an array containing UserRole.Admin, UserRole.Editor, and UserRole.Viewer.
Angular
Hint
Define roles as an array with the enum values.
4
Display the roles list in the component template
Update the component template to use *ngFor to loop over roles and display each role inside a <li> element within a <ul>.
Angular
Hint
Use <ul> with <li *ngFor="let role of roles">{{ role }}</li> inside the template.
Practice
(1/5)
1. What is the main purpose of using enum in an Angular application?
easy
A. To group related constant values under a single name
B. To create dynamic variables that change at runtime
C. To define functions inside components
D. To style components with CSS
Solution
Step 1: Understand what enums represent
Enums are used to group related constant values, making code easier to read and maintain.
Step 2: Compare with other options
Options A, B, and C describe unrelated concepts like styling, dynamic variables, or functions, which enums do not handle.
Final Answer:
To group related constant values under a single name -> Option A
Quick Check:
Enums = group constants [OK]
Hint: Enums group fixed values for clarity and safety [OK]
Common Mistakes:
Thinking enums create dynamic or changeable variables
Confusing enums with functions or styling
Using enums for unrelated tasks like CSS
2. Which of the following is the correct syntax to declare an enum named UserRole with values Admin and User in Angular?
easy
A. UserRole enum { Admin, User }
B. enum UserRole = { Admin, User }
C. enum UserRole { Admin, User }
D. enum UserRole: { Admin, User }
Solution
Step 1: Recall enum declaration syntax in TypeScript
The correct syntax is enum Name { Value1, Value2 } without equals or colons.
Step 2: Check each option
enum UserRole { Admin, User } matches the correct syntax. Options B, C, and D use invalid symbols like '=', misplaced keywords, or colons.
Final Answer:
enum UserRole { Admin, User } -> Option C
Quick Check:
enum syntax = enum Name { ... } [OK]
Hint: Use 'enum Name { ... }' without '=' or ':' [OK]
Common Mistakes:
Adding '=' after enum name
Using ':' instead of braces
Misplacing the 'enum' keyword
3. Given the enum declaration:
enum Status { Active = 1, Inactive = 0 }
What will be the output of console.log(Status.Active)?
medium
A. 1
B. Active
C. 0
D. undefined
Solution
Step 1: Understand enum value assignment
Status.Active is explicitly assigned the value 1 in the enum.
Step 2: Check what console.log prints
Logging Status.Active prints its numeric value, which is 1.
Final Answer:
1 -> Option A
Quick Check:
Enum value = number assigned [OK]
Hint: Enum member prints its assigned value [OK]
Common Mistakes:
Expecting the name 'Active' to print instead of value
Confusing 0 and 1 values
Assuming undefined if not string
4. What is wrong with this enum declaration in Angular?
enum Color { Red = 'red', Green, Blue = 'blue' }
medium
A. Enum values cannot be strings
B. Enum names must be lowercase
C. Enum must have at least three values
D. You cannot mix string and numeric enum values without explicit assignment
Solution
Step 1: Analyze enum value types
Mixing string and numeric enum members without explicit values causes errors.
Step 2: Identify the problem in the code
Green has no assigned value after Red is string 'red', so it tries to auto-assign a number, which is invalid.
Final Answer:
You cannot mix string and numeric enum values without explicit assignment -> Option D
Quick Check:
Mixed enum types need explicit values [OK]
Hint: Assign all string values explicitly to avoid mixing errors [OK]
Common Mistakes:
Assuming enum names must be lowercase
Thinking enums can't have string values
Believing enums require minimum count
5. You want to use an enum OrderStatus in Angular to represent these states: Pending, Shipped, Delivered, and Cancelled. You also want to display user-friendly text for each status in your template. Which approach is best?
hard
A. Use only strings in enum and display enum keys directly
B. Define enum with numeric values and create a mapping object for display text
C. Use separate string constants instead of enum
D. Use enum with mixed string and numeric values without mapping
Solution
Step 1: Understand enum usage for fixed states
Using numeric enums keeps code efficient and clear for logic.