Javascript Eslint无法解析,红色突出显示可选的链接(?)和空合并(?)运算符

Javascript Eslint无法解析,红色突出显示可选的链接(?)和空合并(?)运算符,javascript,babeljs,eslint,Javascript,Babeljs,Eslint,我正在寻找有关的eslint规则 @babel/插件建议可选链接 @babel/plugin建议nullish合并运算符 当我执行以下操作时,我的编辑器以红色高亮显示 const baz=obj?.foo?.bar?.baz;//42 const safe=obj?.qux?.baz;//未定义 const foo=obj.baz默认值“;//违约 //eslint禁用下一行无控制台 控制台日志('baz',baz); //eslint禁用下一行无控制台 console.log('safe

我正在寻找有关的eslint规则

  • @babel/插件建议可选链接
  • @babel/plugin建议nullish合并运算符
当我执行以下操作时,我的编辑器以红色高亮显示

const baz=obj?.foo?.bar?.baz;//42
const safe=obj?.qux?.baz;//未定义
const foo=obj.baz默认值“;//违约
//eslint禁用下一行无控制台
控制台日志('baz',baz);
//eslint禁用下一行无控制台
console.log('safe',safe);
//eslint禁用下一行无控制台

console.log('foo',foo)您是否尝试将eslint配置上的解析器设置为“babel eslint”?当使用eslint尚不支持的实验性功能时,建议使用该解析器。

您必须使用此插件:

然后可以禁用原始的eslint规则并启用它的babel版本,这样就不会显示错误。然后,您的eslint配置可能如下所示:

{
  parser: "babel-eslint",
  rules: {
    "no-unused-expressions": 0,
    "babel/no-unused-expressions": 1
  },
  plugins: ["babel"]
}

将以下配置添加到您的
eslint

"parser": "babel-eslint"

eslint>=7.5.0开始,本机支持空合并运算符

最简单的设置是在package.json中设置ES2020:

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

当我从
@typescript eslint/parser
更改更多上下文:Create.eslintrc.json Add{“parser”:“babel eslint”}save您可能是指
ecmaVersion
,而不是
exmaVersion
?谢谢@JürgLehni,我已经纠正了这个错误。像canonical这样的Orzlook是
ecmaVersion:11
12
,而
2020
2021
实际上被接受为别名: