ESLint和This-Bind运算符

ank*_*zet 1 javascript function-binding eslint ecmascript-next

此,绑定运营商是为了方便的提案this为ES7方法绑定语法:

// 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));
Run Code Online (Sandbox Code Playgroud)

问题是,它仍处于未来(7)版ES的提案阶段,因此它尚未包含在标准中,因此不受ESLint的支持,同时仍然可以通过tanspiling(与Babel,fe)一起使用.

问题是,ESLint是否有任何模块/插件/选项支持函数绑定操作符(或整套ES7实验特性)语法?

ank*_*zet 5

好吧,当我在网上准备这个问题时,我发现,Babel已经为ESLint 实现了自己的自定义解析器,它允许lint任何有效的Babel代码.

为了使用它你应该:

  1. 首先通过npm以下方式安装babel-eslint解析器:

    $ npm install eslint babel-eslint --save-dev
    
    Run Code Online (Sandbox Code Playgroud)
  2. 配置ESLint以使用自定义解析器,方法是在.eslintrc文件中指定:

    fe .eslintrc.json:

    {
        "parser": "babel-eslint",
        ...
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 如果您使用SublimeLinter,请关闭/打开linter以重新加载配置.