Javascript Eslint不识别反射

Javascript Eslint不识别反射,javascript,ecmascript-6,eslint,reflect,Javascript,Ecmascript 6,Eslint,Reflect,我正在代码中使用Reflect。问题是Eslint认为它是一个未声明的变量。我得到了这个错误: eslint --config ./.eslintrc.json src 30:25 error 'Reflect' is not defined no-undef 32:9 error 'Reflect' is not defined no-undef 39:21 error 'Reflect' is not defined no-undef 40:5 error 'Re

我正在代码中使用Reflect。问题是Eslint认为它是一个未声明的变量。我得到了这个错误:

eslint --config ./.eslintrc.json src

30:25  error  'Reflect' is not defined  no-undef
32:9   error  'Reflect' is not defined  no-undef
39:21  error  'Reflect' is not defined  no-undef
40:5   error  'Reflect' is not defined  no-undef
我将
.eslintrc
文件设置为ECMAScript 2015:

"parserOptions": {
    "ecmaVersion": 2015,
    "sourceType": "module",
    "ecmaFeatures": {
      "globalReturn": true
    }
  }

不确定为什么要应用
no undef
规则来反映。我所有的代码通常都是ECMAScript 2015,没有什么不寻常的地方。

除了设置
ecmaVersion
,您需要告诉它包括“es6”全局变量:

(您可能还需要其他人,例如
browser


文档中有更多信息。

是的,这就解决了问题。我没想到要在两个地方设置es6:parserOptions和env。事实上,刚刚从parserOptions中删除了“ecmaVersion”:2015,并将es6保留在env中。它是有效的。所以我想知道为什么您会需要parserOptions设置。@RobertBiggs-如果您使用
es6
env
设置,它会将
ecmaVersion
设置为
6
2015
)。如果您想使用更高的功能(如ES2018的属性扩展),您需要将
ecmaVersion
设置为更高的值。我认为它们是分开的,因为有些人传输高级语法,但不使用新内置的多边形填充。
{
    "env": {
        "es6": true
    }
}