title: How to handle warnings for proprietary/custom properties of built-in objects in TypeScript
body: <p>I am using Personas which relies on the <a href="https://developer.mozilla.org/en-US/docs/DOM/navigator.id" rel="noreferrer">proprietary property <code>navigator.id</code></a>. Since this property is not standard, the TypeScript compiler generates the following warning: </p>
  
  <pre><code>$ tsc home.ts --out my_ts_generated_code.js
  /Users/..../home.ts(27,18): The property 'id' does not exist on value of type 'Navigator'
  </code></pre>
  
  <p>But the .js file is successfully generated and runs on the FF15 browser without any warning/error message.<br>
  I also include a polyfill for <code>navigator.id</code>, as instructed by the documentation, so <code>navigator.id</code> will definitely by available in every browser.</p>
  
  <p>Could someone suggest me how to deal with this warning?</p>
  
  <p><strong>index.html</strong></p>
  
  <pre><code>&lt;!-- some HTML omit above --&gt;
  &lt;script src="https://login.persona.org/include.js"&gt;&lt;/script&gt;
  &lt;script src="my_ts_generated_code.js"&gt;&lt;/script&gt;
  &lt;button class="btn" id="signin"&gt;Sign in&lt;/button&gt;
  &lt;button class="btn" id="signout"&gt;Sign out&lt;/button&gt;
  &lt;!-- some HTML omit below --&gt;
  </code></pre>
  
  <p><strong>home.ts</strong></p>
  
  <pre><code>declare var $;
  
  class Student {
      fullname : string;
      constructor(public firstname, public middleinitial, public lastname) {
          this.fullname = firstname + " " + middleinitial + " " + lastname;
      }
  }
  
  interface Person {
      firstname: string;
      lastname: string;
  }
  
  function greeter(person : Person) {
      return "Hello, " + person.firstname + " " + person.lastname;
  }
  
  var user = new Student("Jane", "M.", "User");
  
  $(function() {
      $('#signin').on('click', function(e) {
          e.preventDefault();
          navigator.id.request();
      });
  
      $('#signout').on('click', function(e) {
          e.preventDefault();
          navigator.id.logout();
      });
      //document.body.innerHTML = greeter(user);
  });
  </code></pre>