1. ホーム
  2. angular

[解決済み] ウェブストーム Must be lvalue」の意味するところ

2022-02-11 19:59:35

質問

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">

エラーメッセージです。

lvalueでなければならない

lvalueでなければならない

解決方法は?

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"

  • の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">
   

繰り返しになりますが、これはあくまで警告であり、どう対処するかはあなた次第です。