eslint - Optional chaining error with vscode

All versions of Node.js above 12 support the optional-chaining operator (a ECMAScript 2020 feature). Try to use this:

"parserOptions": {
    "ecmaVersion": 2020
}

You should use @babel/eslint-parser (formerly called babel-eslint) with your eslint config. This allows you to lint ALL valid Babel code with eslint. eslint supports all ES2020 features as of version v7.2.0

$ npm install @babel/eslint-parser --save-dev
# or
$ yarn add @babel/eslint-parser -D

Then in your .eslintrc do:

{
  parser: "@babel/eslint-parser",
}

You no longer need @babel/eslint-parser as eslint@^7.5 now supports optional chanining.

Run the following to update eslint within your project:

npm

npm install --save-dev eslint@^7.5

yarn

yarn add -D eslint@^7.5

And then, ensure your config is as follows:

.eslintrc

{
  "parserOptions": {
    "ecmaVersion": 2020
  }
}

.eslint.js

module.exports = {
    "parserOptions": {
        "ecmaVersion": 2020
    }
}

See https://eslint.org/blog/2020/07/eslint-v7.5.0-released#optional-chaining-support for more information.


First, you should have a ESLint parser that supports the optional chaining:

npm install -D @babel/eslint-parser

If you're facing issues with peer dependencies then run by appending --legacy-peer-deps to the command.

Then, you should have the ESLint version that supports the optional chaining. This is that release version(7.5.0):

npm install eslint@^7.5

Tell your ESLint server to use the above-installed parser:

{
  "parserOptions": {
    "ecmaVersion": 2020
  }
  ...
}