JSHint抑制可选链接的错误



当我发现可选链接(?.(时,我正在编写一些Javascript。我决定在我写的一些代码中需要它。当我输入完代码后,我注意到JSHint给了我一个错误,上面写着Expected an identifier and instead saw '.'. (E030) jshint(E030)。以下代码运行时没有任何错误(MDN兼容性表(,但JSHint仍然对此发出警告

var x = {
y: {
z: 123
}
};
console.log(x.y?.z)

我发现了另一个与此相关的StackOverflow问题,但这个问题专门询问了ESLint,而这个问题是关于JSHint的。我还搜索了JSHint GitHub存储库的问题选项卡,但找不到任何内容。有什么方法可以抑制这种错误吗?我正在使用Visual Studio代码内幕。

编辑器信息取自Code - Insiders > About Visual Studio Code - Insiders:

Version: 1.48.0-insider
Commit: d13d2fc56da7a2f8bcad4256212db0661fcbba45
Date: 2020-08-05T05:26:44.946Z (20 hrs ago)
Electron: 7.3.2
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Darwin x64 19.5.0

将:"esversion": 11添加到jshint文件中。在版本11中添加了可选链接。

中存在此问题https://github.com/jshint/jshint/issues/3448.

它暗示";可以使用ignore:start/ignore:endignore:line指令使JSHint传递它无法识别的任何语法">

当通过yarn 升级时,它似乎不起作用

node -v
v16.2.0

项目文件夹中的.jshint

cat .jshintrc 
{
"-W138": true,
"-W083": true,
"esversion": 11
}

来自package.json:

"grunt-contrib-jshint": "^3.0.0",
"jshint": "^2.13.1",

来自gruntfile.js

jshint: {
options: {
"-W138": true,
"-W083": true,
"jshintrc": true,
esversion: 11
},
files: ['src/js/**/*.js']
},

结果:

grunt jshint:files
if (response?.errCode != 200) {
^ Expected an identifier and instead saw '.'.

一些调查:

node_modules/grunt-contrib-jshint/node_modules/jshint/package.json
"repository": {
"type": "git",
"url": "https://github.com/jshint/jshint.git"
},

in repository是jshint的正确版本(2.13.1(,但在我的项目中它没有更新(仍然有2.12.0(

解决方案1:

throw new Exception(response?.errMessage); /* jshint ignore:line */

解决方案2:

cd node_modules
cp -Rp jshint grunt-contrib-jshint/node_modules/

相关内容

  • 没有找到相关文章

最新更新