106 votes

Syntaxe succincte/concise pour la #39 d'objet en/#39;optionnelle #39; clés d'objet en ES6/ES7 ?

Il ya déjà beaucoup de fonctionnalités cool dans ES6/ES7 pour définir les objets Javascript. Cependant, le modèle suivant est commun dans Javascript :

Existe-t-il un moyen de définir l'objet en même temps avec des touches facultatives et requises ?

276voto

Ori Drori Points 65611

Vous pouvez utiliser l'objet de la propagation de disposer en option d'une propriété.

Remarque: de l'Objet au Repos et à la Propagation est un stade 4 proposition de ECMAScript. Vous pourriez avoir besoin de la babel de transformation de l'utiliser.

let flag1 = true;
let flag2 = false;

const obj = { 
  requiredKey1: 1, 
  requiredKey2: 2,
  ...(flag1 && { optionalKey1: 5 }),
  ...(flag2 && { optionalKey2: 6, optionalKey3: 7 }),
  ...(flag1 && { optionalKey4: 8, optionalKey5: 9 })
};

console.log(obj);

4voto

Suren Srapyan Points 42277

Pour indiquer la clé, vous pouvez l'attribuer, si la condition est fausse

<div class="snippet" data-babel="false" data-console="true" data-hide="false" data-lang="js"> <div class="snippet-code">

</div></div>

-3voto

Bergi Points 104242
<blockquote> <p>le modèle suivant est commun dans Javascript</p> <p>Il ne devrait pas. Avoir de nombreux objets de formes différentes peut entraîner une pénalité de performance. Les enregistrements doivent toujours contenir les mêmes clés. Donc, il suffit d'utiliser</p><pre><code></code></pre></blockquote>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X