Как обрабатывать предупреждения для собственных / пользовательских свойств встроенных объектов в машинописном

голоса
14

Я использую Персона , который опирается на собственности недвижимости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);
});
Задан 03/10/2012 в 07:50
источник пользователем
На других языках...                            


2 ответов

голоса
20

1) Вы можете переосмысливать навигатор пропеллер.

(<any>navigator).id.request();

2) Вы можете объявить идентификатор проп самостоятельно, вы

mycompany.lib.d.ts

interface Navigator {
  id: any
}

app.ts

navigator.id.request();

посмотреть видео http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript/ Там Андерс сказать , как jQuery.UI добавить новые методы в JQuery (см 46 мин)

Ответил 03/10/2012 в 08:34
источник пользователем

голоса
0

Добавить проверку как if(navigator.id != null && typeof navigator.id != 'undefined')перед тем STMT где упоминается navigator.id

Ответил 03/10/2012 в 07:56
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more