【问题标题】:Force ESLint to use ES6强制 ESLint 使用 ES6
【发布时间】:2016-12-23 18:51:42
【问题描述】:

我的 ESLint 已全部设置好并可以正常工作,但我希望它在我不使用 ES6 的东西(如 letconst 或箭头函数 (=>) 时抛出错误。

.eslintrc

{
  "env": {
    "node": true,
    "es6": true,
    "mocha": true
  },
  "rules": {
    "semi": 2
  },
  "parserOptions": {
    "ecmaVersion": 6,
    "sourceType": "script",
    "ecmaFeatures": {
      "arrowFunctions": true,
      "binaryLiterals": true,
      "blockBindings": true,
      "classes": true
    }
  }
}

目前,这不会引发以下错误:

main.js

var stars = [];
var speed = 20;

function setup() {
  createCanvas(windowWidth, windowHeight);

  // Create 1000 stars
  for (var i = 0; i < 1000; i++) {
    stars.push(new Star());
  }
}

【问题讨论】:

  • 样式检查器或 linter 如何知道何时应该或不应该使用箭头函数?不过有一个no-var 规则。
  • 我想知道是不是真的如此。由于 Es6 允许你使用 Es5 的东西
  • 箭头函数不能代替普通函数。
  • 与其说是“ES6 让你使用 ES5 的东西”,不如说 ES6 是 ES5 的超集,因此任何有效的 ES5 程序(几乎)都是一个有效的 ES6 程序。

标签: javascript ecmascript-6 eslint


【解决方案1】:

您可以使用prefer-arrow-callback rule 强制使用箭头函数作为回调。

此外,prefer-const rule 会尽可能强制使用const(即,如果永远不会重新分配变量)。

【讨论】:

    【解决方案2】:

    您没有在 for 循环中使用 i,所以这不是错误。

    您可以使用 no-var 规则,但它会影响所有内容,而不仅仅是 for 循环。

    如果您在 for 循环中使用了 i,那么您正在寻找的是 no-loop-func 规则。

    如果您更喜欢箭头函数作为回调,您可以使用prefer-arrow-callback

    【讨论】:

      猜你喜欢
      • 2020-10-13
      • 2020-01-18
      • 2021-08-04
      • 2015-07-20
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 2016-09-26
      • 2016-05-26
      相关资源
      最近更新 更多