如何在TypeScript中处理内置对象的专有/自定义属性的警告

我正在使用依赖于专有属性navigator.id Personas。 由于此属性不是标准属性,因此TypeScript编译器会生成以下警告:

 $ 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' 

但.js文件已成功生成并在FF15浏览器上运行,没有任何警告/错误消息。
我还按照文档的说明为navigator.id添加了一个polyfill,因此navigator.id肯定会在每个浏览器中都可用。

有人可以建议我如何处理这个警告吗?

的index.html

       

home.ts

 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); }); 

1)您可以重新解释导航器道具。

 (navigator).id.request(); 

2)你可以自己申报身份certificate

mycompany.lib.d.ts

 interface Navigator { id: any } 

app.ts

 navigator.id.request(); 

观看此videohttp://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript/ Anders告诉jQuery.UI向jQuery添加新方法(参见46分钟)

在stmt之前添加if(navigator.id != null && typeof navigator.id != 'undefined') ,其中涉及navigator.id