Skip to Content

@ApiPropertyEnum

Documents and validates DTO fields that map to TypeScript enums. Supports string or numeric enums, single values or arrays, and automatically lists all enum members in Swagger.

Signature

@ApiPropertyEnum(properties: TApiPropertyEnumProperties)

Required configuration

OptionDescription
enumThe enum object (e.g., UserRole). Used for Swagger enum values and validation.
enumNameOptional explicit name shown in Swagger schema when using barrel exports.
description, entity, isRequired, isNullableSame semantics as other property decorators.
exampleValueOptional; defaults to the first enum value (or an array if isArray is true).
isArray, minItems, maxItems, isUniqueItemsEnable enum arrays with array validation.

Behavior

  • Adds @ApiProperty with the enum schema and example value. Arrays automatically expose items.
  • Applies IsEnum, IsOptional, and array validators for request DTOs.
  • Emits ApiResponseProperty, Expose, or Exclude when isResponse is true.

Example

enum UserRole { ADMIN = "admin", USER = "user", } class UserDto { @ApiPropertyEnum({ entity: () => UserEntity, description: "User role", enum: UserRole, enumName: "UserRole", isRequired: true, }) role!: UserRole; }
Last updated on