Je travaille sur une petite API et je souhaite mettre à jour les données à l'aide de HTTP PATCH REQUEST
sans utiliser un tas d'instructions if. J'essaie de remplir l'objet de données sortant uniquement avec les données modifiées.
update() {
let prop1 = hasBeenChanged.prop1 ? changedData.prop1 : null;
// ...
let propN = hasBeenChanged.propN ? changedData.propN : null;
let data: ISomething = {
// something like --> property != null ? property: property.value : nothing
}
}
Existe-t-il un moyen de créer dynamiquement l'objet de données?
Vous pouvez utiliser Object.assign
:
let data = Object.assign({},
first === null ? null || {first},
...
);
Cela fonctionne parce que Object.assign
sautera les paramètres null
.
Si vous êtes sûr que la valeur de la propriété ne sera pas "fausse", alors il serait un peu plus court d'écrire:
let data = Object.assign({},
first && {first},
...
);
En supposant que l'objet va être stringifié à un moment donné, puisque la stringification ignore les valeurs non définies, vous pouvez également essayer
let data = {
first: first === null ? undefined : first,
...
}