title: Typescript | ImplicitAny check best practices?
body: <p>I've started getting into Typescript a few weeks ago and came along some questions.
  While setting up webpack I added <code>&quot;noImplicitAny&quot;: true</code> to the tsconfig.json. Immediately I came along some errors in my code, where I get an error from the noImplicitAny check.
  The errors all came from the same type of problem method: I try to access object properties with a dynamic key (type: string):</p>
  <p>Code snippets:</p>
  <pre class="lang-js prettyprint-override"><code>interface IEmbed {
      title?: string;
      author?: string;
      authorLink?: string;
      authorIcon?: string;
      color?: number;
      description?: string;
      url?: string;
      icon?: string;
      footer?: string;
      fields?: IField[];
  }
  const embed: IEmbed = {};
  keys.forEach((key: string) =&gt; {
      embed[key] = this.embed[key]; // error happens here
  });
  </code></pre>
  <p>Error:</p>
  <pre class="lang-none prettyprint-override"><code>Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'IEmbed'.
    No index signature with a parameter of type 'string' was found on type 'IEmbed'.ts(7053)
  </code></pre>
  <p>I came along some possible fixes but none of them seemed right to be in use - They all were described as if they are a workaround or something alike.</p>
  <p><strong>What do you guys use to fix this problem or how do you structure your code to prevent such errors from happening?</strong></p>
  <p>I'm happy to receive any improvement thoughts. Thanks in advance!</p>
  <p>~ Andreas | asdf1414</p>