Angularで「is not assignable to type ‘HttpParams | { [param: string]: string | string[]; }’.」
今回はAngularを使用しているときに下記のようなエラーが起きたときの対処法についてご紹介していきます。
1 2 |
error TS2322: Type 〇〇 is not assignable to type 'HttpParams | { [param: string]: string | string[]; }'. Type 'boolean' is not assignable to type 'string | string[]'. |
Angularのバージョンは8.2.14です。
Angularで「is not assignable to type 'HttpParams | { [param: string]: string | string[]; }’.」
結論から言うとHTTPメソッド(または HttpParams を使用する場合)のクエリパラメータの想定としてはオブジェクトが型 { [param: string]: string | string[]; } に適合する必要があるのに対し、クエリパラメータにboolean型の変数を含めたときに表題のエラーが発生します。
より分かりやすく言うと、例えばboolean型のisPrimeという変数を用意して
1 2 3 |
{ isPrime: true } |
という値をクエリパラメータに含めるとうまくいきません。
文字列に変換して
1 2 3 |
{ isPrime: true ? 'true' : 'false' } |
などとする必要があります。
知らないと引っかかるので、上記を確認しましょう。
終わりに
今回はAngularを使用しているときに表題のようなエラーが起きたときの対処法についてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません