Eslint - `ошибка разбора: ошибка непредвиденная лексема =` по присвоению жирной стрелкой / инициализатор собственность


Я использую функцию со стрелкой, и она жалуется на ошибку синтаксического анализа:

Parsing Error: Unexpected token =

Однако мой код действителен (пожалуйста, скажите мне, если я ошибаюсь). Кроме того, я установил.настройки eslintrc для использования синтаксического анализа es6:

.eslintrc

{
    "parserOptions": {
        "ecmaVersion": 6,
    }
}

Вот мой код:

class foo() {
     // Doesn't like the line below
     // even though it is valid:
     namedFunction = () => {

     }

}

Есть ли способ устранить эту ошибку? Это делает огромное отличие в терминах того, что значение this от конкретной функции.

1 2

1 ответ:

Вы используете синтаксис class field (a.k.a. property initializer), который не является частью ECMAScript 2015 (ES6), ни ES2016 или 2017, и поэтому не поддерживается ESLint. В настоящее время это предложениестадии 2 . Если вы хотите использовать его с ESLint, вам нужно использовать babel-eslint. Эта страница описывает, как его использовать, но суть такова:

Установить

$ npm install eslint@3.x babel-eslint@6 --save-dev

Настройка

.eslintrc

{
  "parser": "babel-eslint",
  "rules": {
    "strict": 0
  }
}