typescript - class-transformer Schließe undefinierte Eigenschaften aus
Schließe undefinierte oder null-Eigenschaften aus der Klasse aus. Das ist die eigentliche Natur, aber ich brauche einen Dekorator, der dies ignorieren kann.
import {Expose, plainToClass} from "class-transformer";
class User {
@Expose() id: number;
@Expose() firstName: string;
@Expose() lastName: string;
}
const fromPlainUser = {
unkownProp: 'hello there',
firstName: 'Umed',
lastName: 'Khudoiberdiev',
}
console.log(plainToClass(User, fromPlainUser, { excludeExtraneousValues: true }))
// User {
// id: undefined,
// firstName: 'Umed',
// lastName: 'Khudoiberdiev'
// }
Antwort #1
Wenn Sie eine Klasseninstanz erstellen, haben Sie deren Eigenschaften. Wenn Sie ein Objekt ohne undefinierte Eigenschaften haben möchten, wandeln Sie einfach eine Klasseninstanz zurück in ein einfaches Objekt mit Regeln, die undefinierte Felder vermeiden. Es wird keine Klasseninstanz mehr sein, aber es wird ein Objekt ohne undefinierte Felder sein.
Antwort #2
Fügen Sie exposeUnsetFields zu Ihrem Optionen-Plain-Objekt hinzu. Sollte sein:
plainToClass(User, fromPlainUser, { excludeExtraneousValues: true, exposeUnsetFields: false, })
