Nœud v6 à défaut sur l'objet de la propagation
J'avais une question au sujet de pourquoi nœud v6.7 serait en défaut d'exécuter ce code:
var a = {
foo: 'bar'
}
var b = {
...a,
my: 'sharona'
}
console.log(b)
Quelqu'un a une idée de pourquoi cela serait? J'ai pensé v6 d'objet pris en charge la propagation..? Mais je ne crois pas? Voici l'erreur que je vois:
/home/teselagen/ve/tnrtest.js:6
...a,
^^^
SyntaxError: Unexpected token ...
at Object.exports.runInThisContext (vm.js:76:16)
at Module._compile (module.js:528:28)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
at Module.runMain (module.js:590:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:509:3
- Oeuvres dans le Nœud 8 avec --harmonie drapeau.
- Travaille dans le nœud 8.3.0 même sans drapeau
Vous devez vous connecter pour publier un commentaire.
Ressemble ES6 propagation de l'opérateur ne fonctionne que pour les tableaux et iterables. Il est spécifiquement conçu pour PAS de TRAVAIL pour les objets: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Spread_operator
Citation:
Bien que le MDN article précédemment suggéré que d'essayer d'utiliser la propagation de l'opérateur sur les objets doivent résultat non défini, plutôt que de jeter une erreur. Comme de cette révision, l'actuel MDN article traite de l'appui à la "Propagation pour objet de littéraux"
En outre, l'node.js tableau de compatibilité des réclamations node.js entièrement conforme à la spécification de la propagation de l'opérateur avec des tableaux et iterables, mais indique explicitement que l'objet reste transmettre les propriétés ne sont pas pris en charge: http://node.green/#ESNEXT-candidate--stage-3--object-rest-spread-properties, au moins pas jusqu'à ce que le Nœud de la version 8.60 (d'où la couleur s'allume en vert pour indiquer que le début en 8.3, Nœud ne soutien de l'objet de la propagation et de repos de l'opérateur, comme l'a souligné dans l'autre réponse)
--harmony_destructuring
drapeau dans les versions précédentes, mais l'a supprimé parce qu'il "n'est pas dans la norme". Il a été très utile, rapide prototype au lieu de l'utilisation de Babel pour tout... 🙁À l'aide de repos/de l'écart avec les objets est une proposition distincte, dont vous pouvez lire ici. Une proposition n'est pas acceptée pour le annuelle ES à moins qu'il atteint le stade 4, et il est actuellement à l'étape 3. Il peut le faire dans ES2018. Si vous voulez l'utiliser dès maintenant, vous aurez à utiliser un transpiler comme
babel
.EDIT: de Nœud v8.3, de l'objet au repos et à la propagation est disponible sans la nécessité pour toutes les transpilation.
console.log(process.version)
vers le haut de votre script pour s'assurer qu'il est en cours d'exécution de cette version. Dans ce cas, il est probable d'un autre problème dans votre code.