首页 > 解决方案 > Webstorm:“必须是左值”是什么意思

问题描述

在编写我的 Angular 应用程序时,我收到了这个“奇怪”的错误消息:

代码运行良好,我找不到此错误消息的任何文档。这是什么意思?

代码来自:https ://stackoverflow.com/a/45144391/639035 ,这是一个接受的答案,有 15 票赞成。

代码:

<input placeholder="TEST"
       [ngModel]="phone_numbers && phone_numbers[0]?.full_number"
       (ngModelChange)="phone_numbers?.length && phone_numbers[0].full_number=$event">

错误信息:

必须是左值

必须是左值

标签: angularwebstorm

解决方案


这就是使用 JSAnnotator 进行 webstorm 检查的方式。

尝试使用以下代码创建简单的 js 文件:

let a,b;
a && b=1;

在此处输入图像描述

如果该错误听起来像这样会更好:

ReferenceError:左侧分配无效

另见问题

Webstorm 警告我们这段代码是不寻常的情况,我们可能写错了,例如

if (a === 1 && b = 2) {
                 /\
   Seems it should be == or ===. 
   So it's easy to make such mistake like this

我们怎样才能抑制这个错误?

  • 用以下方式重写代码

(ngModelChange)="phone_numbers?.length ? phone_numbers[0]['full_number']=$event : null"
  • input抑制元素的 JSAnnotator

<!--suppress JSAnnotator -->
<input placeholder="TEST"
       [ngModel]="phone_numbers && phone_numbers[0]?.full_number"
       (ngModelChange)="phone_numbers?.length && phone_numbers[0]['full_number']=$event">
   

同样,这只是一个警告,如何处理它取决于您。


推荐阅读