【问题标题】:Disable JSHint warning: Expected an assignment or function call and instead saw an expression [duplicate]禁用 JSHint 警告:需要赋值或函数调用,而是看到一个表达式 [重复]
【发布时间】:2023-03-17 14:37:02
【问题描述】:

我有以下行:

imageUrl && (data.imageUrl = imageUrl);

对于这一行,JSHint 抱怨:

 Expected an assignment or function call and instead saw an expression.

我了解警告,但我想禁用它。我找不到怎么做的方法。有什么想法吗?

【问题讨论】:

  • 这毫无意义(imo)很棘手。为什么不使用 if,那么警告就不会发生。
  • @Paul 因为我经常使用这种模式。我更喜欢忽略这种错误,专门针对我使用它的行(不是全局)。
  • 好的,然后看我的回答:)
  • @torazaburo,不,另一个问题是相反的(jshint 在期望表达式时找到分配)
  • 另外一个问题是关于 jslint 的——而且 jshint 的答案并不是最好的,IMO。

标签: javascript jshint


【解决方案1】:

如果真的只有那一行

imageUrl && (data.imageUrl = imageUrl); // jshint ignore:line

我喜欢编写代码,因此它不会产生警告,即使这意味着要采取特殊行动。所以我更喜欢

if (imageUrl) data.imageUrl = imageUrl;

【讨论】:

  • 知道吗?听取了你的建议! if (imageURL) data.imageUrl = imageUrl 看起来相似且更好。谢谢!
  • a || (a = []) 怎么样?有什么改善吗?
  • if (!a)? if (a.length != 0)?取决于你想要做什么。或if (a) ; else a=[];。请不要那样做! (无论如何,您都会收到不同的警告)
  • 谢谢!有什么想法:a = (b === c)?我得到Expected an assignment or function call and instead saw an expression.
  • 好的,这很奇怪。我没有立即明白它为什么抱怨这一点。另一方面,jshint.com 并没有抱怨它,所以你确定这正是你使用的吗?不可能第一个= 是意外==? (这确实会导致您的错误)
【解决方案2】:

在您的 Javascript 中包含 /* jshint expr: true */ 注释。

参考:http://jshint.com/docs/options/#expr

【讨论】:

  • 这会全局关闭它,因此可能会抑制其他地方的有效警告,除非你把它放在有问题的函数中
猜你喜欢
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2021-03-14
  • 2022-01-24
相关资源
最近更新 更多