eslint - vscode 的可选链接错误

A. *_*Lau 33 javascript node.js eslint visual-studio-code

当我使用可选链时,我看到一个红色下划线,但代码运行良好,因为我在节点 14 上

这是我的设置:

node 14.1.0
eslint "^6.8.0"
Run Code Online (Sandbox Code Playgroud)

.eslintrc.js

module.exports = {
    "env": {
        "node": true
    },
    "extends": [
        "eslint:recommended",
    ],
    "parserOptions": {
        "sourceType": "module",
        "ecmaVersion": 2020
    },
    "rules": {
    },
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

ste*_*web 61

您不再需要,@babel/eslint-parser因为eslint@^7.5现在支持可选链接。

运行以下命令来更新项目中的 eslint:

新产品经理

npm install --save-dev eslint@^7.5
Run Code Online (Sandbox Code Playgroud)

yarn add -D eslint@^7.5
Run Code Online (Sandbox Code Playgroud)

然后,确保您的配置如下:

.eslintrc

{
  "parserOptions": {
    "ecmaVersion": 2020
  }
}
Run Code Online (Sandbox Code Playgroud)

.eslint.js

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

Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅https://eslint.org/blog/2020/07/eslint-v7.5.0-released#optional-chaining-support

  • 这是截至 2020 年最新的正确答案 (6认同)

Dan*_*rns 42

您应该在 eslint 配置中使用@babel/eslint-parser(以前称为babel-eslint)。这允许您使用 eslint lint 所有有效的 Babel 代码。eslint 从 v7.2.0 版本开始支持所有 ES2020 特性

$ npm install @babel/eslint-parser --save-dev
# or
$ yarn add @babel/eslint-parser -D
Run Code Online (Sandbox Code Playgroud)

然后在你.eslintrc做的:

{
  parser: "@babel/eslint-parser",
}
Run Code Online (Sandbox Code Playgroud)

  • @bot19 尝试将其放在 eslintrc 配置的根目录下 [此处](https://github.com/babel/babel-eslint#setup) 它在 `.eslintrc.js` 中 (3认同)
  • 普通 eslint 中是否不包含可选链? (2认同)

小智 12

Node.js 12 以上的所有版本都支持可选链运算符(ECMAScript 2020 功能)。尝试使用这个:

"parserOptions": {
    "ecmaVersion": 2020
}
Run Code Online (Sandbox Code Playgroud)


Kir*_* JD 7

首先,您应该有一个支持可选链接的 ESLint 解析器:

npm install -D @babel/eslint-parser

如果您遇到对等依赖性问题,请通过附加--legacy-peer-deps到命令来运行。

然后,您应该拥有支持可选链接的 ESLint 版本。是该发行版本(7.5.0):

npm install eslint@^7.5

告诉您的 ESLint 服务器使用上面安装的解析器:

{
  "parserOptions": {
    "ecmaVersion": 2020
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)