class-transformer converts plain JavaScript objects like parsed JSON request bodies into instances of typed classes and vice versa. It complements class-validator because class-validator requires an actual class instance to run its decorators — without class-transformer, the incoming JSON body is just a plain object with no type information.
When ValidationPipe receives a request body, it is a plain JavaScript object. class-transformer's plainToInstance() converts it into a typed DTO class instance. class-validator then runs its decorators on that instance. Without class-transformer, class-validator has no class instance to inspect and validation does not run.