Voici un extrait dans lequel j'instancie un nouvel objet content
dans mon service:
const newContent = new Content(
result.obj.name
result.obj.user.firstName,
result.obj._id,
result.obj.user._id,
);
Le problème est que cette méthode d'instanciation d'objet repose sur l'ordre des propriétés dans mon modèle content
. Je me demandais s'il y avait un moyen de le faire en mappant chaque propriété à la valeur à laquelle je veux la définir, par exemple:
const newContent = new Content(
name: result.obj.name,
user: result.obj.user.
content_id: result.obj._id,
user_id: result.obj.user._id,
);
const newContent = <Content>({
name: result.obj.name,
user: result.obj.user.
content_id: result.obj._id,
user_id: result.obj.user._id,
});
Ici, vous pouvez instancier un objet et utiliser l'assertion de type ou la conversion en type de contenu. Pour plus d'informations sur l'assertion de type: https://www.typescriptlang.org/docs/handbook/basic-types.html#type-assertions
Vous pouvez passer un objet au constructeur qui encapsule toutes ces variables:
type ContentData = {
name: string;
user: string;
content_id: string;
user_id: string;
}
class Content {
constructor(data: ContentData) {
...
}
}
Puis:
const newContent = new Content({
name: result.obj.name,
user: result.obj.user.
content_id: result.obj._id,
user_id: result.obj.user._id,
});