Webstorm: Что означает «Должно быть, lvalue» - PullRequest
0 голосов
/ 12 февраля 2019

При написании моего углового приложения я получил это «странное» сообщение об ошибке:

Код работает отлично, и я не смог найтилюбая документация для этого сообщения об ошибке.Что это значит?

Код от: 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">

Сообщение об ошибке:

Должно быть lvalue

Должно быть lvalue

1 Ответ

0 голосов
/ 12 февраля 2019

Так работает проверка веб-шторма с помощью JSAnnotator.

Попробуйте создать простой файл js со следующим кодом:

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

enter image description here

Было бы лучше, если бы эта ошибка звучала следующим образом:

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"
  • supress JSAnnotator для элемента input

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

Опять же, это просто предупреждение, и вам решать, как с этим справиться.

...