Не существует прямого способа условно исключить свойства, основанные на самом объекте.Вы можете использовать группы для контроля экспозиции:
@Expose({ groups: ['owner'] })
@Column({nullable: true, default: null})
public email: string;
, а затем в своем контроллере вы добавляете группу в зависимости от вашего состояния:
const groups = [];
if (isCurrentUser) {
groups.push('owner');
}
classToPlain(user, { groups })