fix: ExposeAll does not work with excludeExtraneousValues
Author: johny1614Created May 18, 2021Updated May 12, 2026
Labelstype: fixstatus: needs triage
Description
Strategy 'exposeAll' does not work as expected with true excludeExtraneousValues flag. Actual behaviour is as all properties were not exposed.
Minimal code-snippet showcasing the problem
class Dog {
name: string;
}
const plainDoggie = {
name: 'Azor',
surname: 'dogs does not have surnames :('
};
const doggie = plainToClass(Dog, plainDoggie, {
strategy: 'exposeAll',
excludeExtraneousValues: true
});
console.log('doggie', doggie);
// should be {name:'Azor'}, but is {} instead
Expected behavior
All properties are exposed. In above example doggie = {name: 'Azor'}
Actual behavior
Properties are not exposed. In above example doggie = {}
Source: typestack/class-transformer