title: Post multidimensional array (string[][]) in angular using HttpClient / HttpParams
body: <p>I'm having trouble finding guidance on the best-practice way to do this with angular (2+). Angular's HttpClient's <a href="https://angular.io/api/common/http/HttpClient#post" rel="nofollow noreferrer">post function</a> has an <a href="https://angular.io/api/common/http/HttpParams" rel="nofollow noreferrer">HttpParams</a> parameter. HttpParams is a key/value map of type <code>[param: string]: string | string[]</code>. But, I need to post a multidimensional array (2D) parameter (<code>string[][]</code>). i.e.</p>
  
  <pre><code>this.http.post(url, {}, {
      params: {
          2d: [ [ 'arr1' ], [ 'arr2' ] ]
      }
  });
  </code></pre>
  
  <p>But this does not seem to be supported by angular's HttpParams class. While searching around other questions, I found out that</p>
  
  <ul>
  <li><p><a href="https://stackoverflow.com/questions/39162136/how-to-post-array-multidimensional-angular-js">this is possible in angularJS</a> using the same <code>Content-Type</code> that angular uses (<code>application/x-www-form-urlencoded</code>).</p></li>
  <li><p><a href="https://stackoverflow.com/questions/31578344/how-2d-array-is-handled-in-http-post-request">this is possible without a framework in vanilla js</a>, but you must encode your multidimensional array on the client side</p></li>
  </ul>
  
  <p>I'm wondering if there is a clean way to do this in angular. If there is not, why did angular make this design decision and what is a workaround?</p>