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实验特性)语法?
好吧,当我在网上准备这个问题时,我发现,Babel已经为ESLint 实现了自己的自定义解析器,它允许lint任何有效的Babel代码.
为了使用它你应该:
首先通过npm以下方式安装babel-eslint解析器:
$ npm install eslint babel-eslint --save-dev
Run Code Online (Sandbox Code Playgroud)配置ESLint以使用自定义解析器,方法是在.eslintrc文件中指定:
fe .eslintrc.json:
{
"parser": "babel-eslint",
...
}
Run Code Online (Sandbox Code Playgroud)如果您使用SublimeLinter,请关闭/打开linter以重新加载配置.