title: React/Typescript not recognizing iframe properties
body: <p>I am trying to embed an iframe that plays a Vimeo with frameborder and allowfullscreen properties on it with a MyOwnComponent like so:</p>
  
  <pre><code>const MyOwnVimeoComponent = () =&gt; {
  return (
      &lt;div&gt;
          &lt;iframe 
              src="https://player.vimeo.com/video/VIMEOID" 
              width="640" 
              height="360" 
              frameborder="0" 
              webkitallowfullscreen 
              mozallowfullscreen 
              allowfullscreen
          &gt;&lt;/iframe&gt;
      &lt;/div&gt;
  );}
  </code></pre>
  
  <p>However, the error I get is:</p>
  
  <pre><code>[ts] Property 'frameborder' does not exist on type 'HTMLProps&lt;HTMLIFrameElement&gt;'
  </code></pre>
  
  <p>Same for <code>webkitallowfullscreen</code>, <code>mozallowfullscreen</code> and <code>allowfullscreen</code></p>
  
  <p>After researching other similar problems on StackOverflow it led me to inspect Typescript's lib.d.ts file and look the <code>&lt;HTMLIFrameElement&gt;</code> interface and variable declarations. </p>
  
  <p>The interface does in fact have the properties <code>frameborder</code> and <code>allowfullscreen</code> types on it but it still throws the error.  I would understand if it only threw an error for the <code>webkitallowfullscreen</code> and <code>mozallowfullscreen</code> but I am generally confused as to what is happening here.</p>
  
  <p>If anyone can point me in the right direction the would be greatly appreciated.</p>
  
  <p>For reference, here is what seems to be the relevant portion of the <code>lib.d.ts</code> file: </p>
  
  <pre><code>interface HTMLIFrameElement extends HTMLElement, GetSVGDocument {
  align: string;
  allowFullscreen: boolean;
  allowPaymentRequest: boolean;
  border: string;
  readonly contentDocument: Document;
  readonly contentWindow: Window;
  frameBorder: string;
  frameSpacing: any;
  height: string;
  hspace: number;
  longDesc: string;
  marginHeight: string;
  marginWidth: string;
  name: string;
  noResize: boolean;
  onload: (this: HTMLIFrameElement, ev: Event) =&gt; any;
  readonly sandbox: DOMSettableTokenList;
  scrolling: string;
  src: string;
  vspace: number;
  width: string;
  addEventListener&lt;K extends keyof HTMLIFrameElementEventMap&gt;(type: K, listener: (this: HTMLIFrameElement, ev: HTMLIFrameElementEventMap[K]) =&gt; any, useCapture?: boolean): void;
  addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
  }
  
  declare var HTMLIFrameElement: {
      prototype: HTMLIFrameElement;
      new(): HTMLIFrameElement;
  }
  </code></pre>