Skip to content
On this page

Enum Decorator

The Enum decorator is designed to validate that the value of a property matches one of the values defined in a TypeScript enumeration. It ensures that your data conforms to specified enum constraints, enhancing type safety and data integrity in your applications.

Properties

  • enum: object - The enumeration that the property value must be a part of.
  • message: string - Optional. A custom error message to be returned if the validation fails.

Usage

To use the Enum, apply it to properties in your class that are meant to hold values defined by specific TypeScript enums.

Example

Suppose you have an enum representing user roles:

typescript
enum UserRole {
  Admin = "admin",
  User = "user",
  Guest = "guest",
}

You can use Enum to ensure that a user role property only accepts values defined in UserRole:

typescript
import { ClassValidator, Enum } from "rest-data-validator";

@ClassValidator
class User {
  @Enum({ enum: UserRole })
  role: UserRole;
}

In this example, the role property must be one of the values specified in the UserRole enum. Attempting to assign any value not included in the enum will result in a validation error.

Custom Error Messages

You can also specify a custom error message to be used if the validation fails:

typescript
@Enum({ enum: UserRole, message: 'Invalid user role' })
role: UserRole;

This will replace the default error message with "Invalid user role" if an invalid value is assigned to the role property.

Enum Decorator has loaded