Kind: Interface
Source: packages/common/interfaces/external/class-transform-options.interface.ts
Part of: Common
Options to be passed during transformation.
ClassTransformOptions defines configuration passed to class transformation operations, such as converting plain objects into class instances or serializing instances into plain data. It controls property exposure rules, groups, versioning, decorator behavior, circular-reference handling, and implicit type conversion.
Properties
| Property | Type |
|---|---|
strategy | `'excludeAll' |
groups | string[] |
version | number |
excludePrefixes | string[] |
ignoreDecorators | boolean |
targetMaps | any[] |
enableCircularCheck | boolean |
enableImplicitConversion | boolean |
excludeExtraneousValues | boolean |
exposeDefaultValues | boolean |
exposeUnsetFields | boolean |
Diagram
mermaidgraph LR A[Transformation Operation] --> B[ClassTransformOptions] B --> C[strategy<br/>excludeAll | exposeAll] B --> D[groups and version] B --> E[excludePrefixes] B --> F[Decorator Controls] B --> G[Type Conversion] B --> H[Circular Reference Check] B --> I[Target Maps] F --> F1[ignoreDecorators] F --> F2[excludeExtraneousValues] F --> F3[exposeDefaultValues] G --> G1[enableImplicitConversion]
Usage
tsimport { plainToInstance } from 'class-transformer';
import type { ClassTransformOptions } from '@nestjs/common';
class CreateUserDto {
name: string;
age: number;
}
const options: ClassTransformOptions = {
strategy: 'excludeAll',
enableImplicitConversion: true,
excludeExtraneousValues: true,
groups: ['create'],
version: 1,
};
const payload = {
name: 'Ada Lovelace',
age: '36',
internalToken: 'do-not-expose',
};
const user = plainToInstance(CreateUserDto, payload, options);
// With implicit conversion enabled, age can be converted to a number.
console.log(user.age);
AI Coding Instructions
- Pass
ClassTransformOptionsto transformation utilities consistently when converting request payloads, DTOs, or response objects. - Use
excludeExtraneousValueswith explicit exposure decorators to prevent undeclared input properties from being included. - Enable
enableImplicitConversiononly when automatic primitive conversion is intended; validate transformed values separately. - Use
groupsandversionto support context-specific or versioned serialization without duplicating DTO classes. - Enable
enableCircularCheckfor object graphs that may contain circular references, noting that it can add processing overhead.
Was this page helpful?