title: dynamic keys in jsdoc typedef
body: <p>Is it possible to have dynamic keys (prop names) in a jsdoc typedef? I'm imagining this would look something like the example below (which does not work).</p>
  
  <pre><code>@typedef {Object} Foo
  @property {string} bar
  @property {*} *
  </code></pre>
  
  <p>Passing properties not listed in the typedef <code>e.g. {baz: 0}</code> makes typescript upset with something like,</p>
  
  <blockquote>
    <p>Argument of type '{ bar: string; baz: number; }' is not assignable to parameter of type 'Foo'.
      Object literal may only specify known properties, and 'baz' does not exist in type 'Foo'</p>
  </blockquote>
  
  <p><hr>
   Using the method proposed by @jcalz <code>Object.&lt;string, *&gt;</code> seems closer to the ideal output but resulted in a strange output</p>
  
  <pre><code>@typedef {Object} Foo
  @property {number} bar
  @property {Object.&lt;string, *&gt;}
  </code></pre>
  
  <p>output:</p>
  
  <pre><code>type Foo = {
      bar: number;
      (Missing): {
          [x: string]: any;
      };
  }
  </code></pre>