2016-02-21 30 views
0

This-Bind operator爲方便this方法結合語法ES7的提案:ESLint和該綁定操作者

// this-bind via '::' 
$(".some-link").on("click", ::view.reset); 

// oldschool .bind(this, ...) 
$(".some-link").on("click", view.reset.bind(view)) 

// or even longer... 
$(".some-link").on("click", function() { 
    return view.reset.apply(view, Array.prototype.slice.call(arguments)); 
}) 

// and even ES6 while is more handy, but still leaves some redundancy 
$(".some-link").on("click", (...args) => view.reset(...args)); 

的問題是,那麼,它仍然在提案階段用於將來(7)版本的ES,所以它還沒有被列入標準,因此不被ESLint支持,而仍然可以通過tanspiling(與Babel,fe)一起使用。

問題是,是否有ESLint的任何模塊/插件/選項來支持函數綁定運算符(或整套ES7實驗性功能)語法?

+0

僅供參考,綁定操作符不是ES7的一部分。 –

+1

@FelixKling,我說的是?正如我所說的,它在ES的[提案](https://github.com/tc39/ecma262/blob/master/stage0.md)階段。此外,它不是像ES7已敲定或smth ...所以,它會是ES7的一部分或不 - 依賴... – ankhzet

+0

在這裏:*「這個綁定操作符是ES7的建議」 *。任何不是第4階段的東西都不會成爲ES7的一部分。請參閱https://twitter.com/bterlson/status/692424625813377026 –

回答

4

好吧,當我在準備這個問題上網衝浪時,我發現,Babel已經實現了它自己的custom parser ESLint,允許任何有效的Babel代碼。

爲了使用它,你應該:

  1. INSTAL巴貝爾-eslint解析器首先通過npm

    $ npm install eslint babel-eslint --save-dev 
    
  2. 配置ESLint使用自定義解析器,由.eslintrc文件中指定它:

    fe .eslintrc.json:如果您在使用SublimeLinter

    { 
        "parser": "babel-eslint", 
        ... 
    } 
    
  3. ,TOGLE棉短絨以重新加載配置/關閉。

+0

這是一個很好的答案。我不敢相信這一直不是這樣 - 我推薦這種方法,它的工作。 –

+0

這對我不起作用,仍然會出現綁定運算符錯誤(::) – Nico

+0

@Nico,您是否在同時使用babel,並且是否已將'transform-function-bind'插件或'stage-0'預設添加到'。 babelrc'?如果是,那麼錯誤消息的外觀如何? – ankhzet