2016-04-18 80 views
1

我有以下的打字稿節點無法運行編譯打字稿

var foo = (...myParams) => { 
    for (var i = 0; i < myParams.length; i++){ 
     console.log(myParams[i] + " "); 
    } 
}; 

foo('a', 'b', 'c'); 

然而,當它編譯通過WebStorm發現在編譯的代碼中的錯誤:

WebStorm errors

時,它的符文由節點,Node無法識別其餘表達式。

C:\PluralSight\TypeScript>node rest-parameter.js 
C:\PluralSight\TypeScript\rest-parameter.js:5 
var foo = (...myParams) => { 
      ^^^ 

SyntaxError: Unexpected token ... 
    at exports.runInThisContext (vm.js:53:16) 
    at Module._compile (module.js:414:25) 
    at Object.Module._extensions..js (module.js:442:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:311:12) 
    at Function.Module.runMain (module.js:467:10) 
    at startup (node.js:136:18) 
    at node.js:963:3 
+0

http://kangax.github.io/compat-table/es6/ –

+1

@squint很酷的鏈接。節點只是不支持它們。 C'est la vive。如果你改變打字稿爲[目標ES5] – BanksySan

+0

@BanksySan(https://www.typescriptlang.org/docs/handbook/compiler-options.html)它會工作 –

回答

3

作爲關於節點的附註。

它支持在5.x版其餘參數。默認情況下,它們不會與其他es6產品一起使用。

爲了使它們能夠與--harmony參數運行的節點,或者某些功能工作仍然在進行中 - 與相應的標誌明確啓用它們。例如:

node --harmony --harmony_default_parameters app.js 

使用下面的命令來了解所有這些 '正在處理' 的國家:

node --v8-options | grep 'in progress' 
+0

應該'節點 - 和諧--harmony_default_parameters'是'node --harmony --harmony_rest_parameters'? – BanksySan

+0

有沒有辦法讓所有尖端科技成爲可能? – BanksySan

+0

否 - 對於其他參數足以具有 - 和諧。因爲它們不是「進行中」。因此,爲了獲得最新的邊緣使用 - 和諧和所有'正在進行'的參數(它不是很多)手動指定 – Amid