Estoy usando Personas que se basa en el proprietary property navigator.id
. Ya que esta propiedad no es estándar, el compilador genera mecanografiado la siguiente advertencia:Cómo manejar advertencias para propiedades propietarias/personalizadas de objetos incorporados en 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'
Pero el archivo .js se genera con éxito y se ejecuta en el navegador FF15 sin ningún mensaje de advertencia/error.
También incluyo un polyfill para navigator.id
, como lo indica la documentación, por lo que navigator.id
definitivamente estará disponible en cada navegador.
¿Podría alguien sugerirme cómo tratar esta advertencia?
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);
});
¿Qué es 'navigator'? ¿De dónde viene? ¿Cómo se declara? –
@ Sidharth: https://developer.mozilla.org/en-US/docs/DOM/window.navigator –
Quizás sea relevante: https://developer.mozilla.org/en-US/docs/DOM/navigator.id ... es una propiedad no estándar. –