program tip

객체 확산에서 노드 v6 실패

radiobox 2021. 1. 7. 07:49
반응형

객체 확산에서 노드 v6 실패


노드 v6.7이이 코드를 실행하지 못하는 이유에 대한 질문이있었습니다.

var a = {
    foo: 'bar'
}

var b = {
    ...a,
    my: 'sharona'
}
console.log(b)

누구든지 그 이유를 알고 있습니까? v6가 개체 확산을 지원한다고 생각했습니다 ..? 하지만 아닐까요? 내가보고있는 오류는 다음과 같습니다.

/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

ES6 스프레드 연산자는 배열 및 반복 가능 항목에만 작동하는 것처럼 보입니다. 개체에 대해 작동 하지 않도록 특별히 설계되었습니다 : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Spread_operator

관련 인용문 :

이터 러블에만 적용

var obj = {"key1":"value1"};
function myFunction(x) {
    console.log(x); // undefined
}
myFunction(...obj);
var args = [...obj];
console.log(args, args.length) //[] 0

이전에 MDN 기사에서는 개체에 대해 확산 연산자를 사용하려고하면 오류가 발생하는 대신 undefined가 발생해야한다고 제안했습니다. 현재 이 개정 , 현재 MDN의 문서에 나와은 "개체 리터럴 확산"에 대한 지원을

또한 node.js 호환성 테이블은 node.js가 배열 및 반복 가능한 스프레드 연산자의 사양을 완전히 준수한다고 주장하지만 구체적으로 개체 rest / spread 속성이 지원되지 않음을 나타냅니다. http://node.green/#ESNEXT-candidate --stage - 3 - 객체 나머지-확산 특성 , 적어도하지 때까지 노드 버전 8.60 (있는 색상이 8.3 년에 시작하여, 노드는 것을 나타 내기 위해 녹색으로 변을 가리 않는 객체 확산 / 나머지 연산자를 지원 뾰족한 아웃으로 다른 답변에서 )


Using rest/spread with objects is a separate proposal, which you can read about here. A proposal doesn't get accepted for the yearly ES release unless it reaches stage 4, and it is currently stage 3. It may make it into ES2018. If you want to use it now, you'll have to use a transpiler like babel.


EDIT: As of Node v8.3, object rest/spread is available without the need for any transpilation.

ReferenceURL : https://stackoverflow.com/questions/40066731/node-v6-failing-on-object-spread

반응형