Javascript Eslint不识别反射
我正在代码中使用Reflect。问题是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
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
}
}