如何在VSCode中屏蔽"use strict"触发的jshint W030警告?
警告触发原因
你当前的代码外层包裹了一层独立的大括号块,JSHint未识别块内的"use strict"为严格模式指令,仅将其判定为无实际执行效果的字符串表达式,因此抛出W030(期望是赋值或函数调用,实际看到表达式)警告。
解决方案
按推荐优先级从高到低排列:
- 移除多余的外层大括号
普通脚本编写不需要额外包裹独立块,去掉外层大括号后JSHint可正常识别文件顶部的严格模式声明,修正后代码如下:"use strict"; let a = "Hello world!"; console.log(a); - 调整严格模式声明位置
如果你确实需要保留外层块做块级作用域隔离,把"use strict"移到块外部,作为整个脚本的严格模式声明即可:"use strict"; { let a = "Hello world!"; console.log(a); } - 通过JSHint指令屏蔽对应警告
如果你需要保留块结构、且要求严格模式仅在块内生效,可通过配置屏蔽该条警告,分两种粒度:- 局部屏蔽:在触发警告的代码上方添加JSHint注释,仅忽略当前位置的W030提示
{ /* jshint -W030 */ "use strict"; let a = "Hello world!"; console.log(a); }- 全局屏蔽:在项目的
.jshintrc配置文件中添加规则,全局关闭W030检测
注意:全局关闭W030规则后,JSHint将不再提示所有无意义表达式问题,可能漏过真实的代码书写错误,非必要不推荐使用{ "-W030": false }
内容的提问来源于stack exchange,提问作者Kostiantyn Ivashchenko
相关产品推荐
相关产品推荐

