Я использую Персона , который опирается на собственности недвижимостиnavigator.id . Поскольку это свойство не является стандартным, машинопись компилятор генерирует следующее предупреждение:
$ 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 браузере без сообщения предупреждения / ошибки.
Я также включают в себя polyfill для navigator.id, как указано в документации, поэтому , navigator.idбезусловно , имеющимися в каждом браузере будет.
Может кто-нибудь предложить мне, как бороться с этим предупреждением?
index.html
<!-- some HTML omit above -->
<script src=https://login.persona.org/include.js></script>
<script src=my_ts_generated_code.js></script>
<button class=btn id=signin>Sign in</button>
<button class=btn id=signout>Sign out</button>
<!-- some HTML omit below -->
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);
});













