كيفية التعامل مع التحذيرات الخاصة بالخصائص الخاصة/المخصصة للكائنات المضمنة في TypeScript

StackOverflow https://stackoverflow.com//questions/12703266

  •  13-12-2019
  •  | 
  •  

سؤال

أنا أستخدم Personas الذي يعتمد على ملكية خاصة navigator.id.نظرًا لأن هذه الخاصية ليست قياسية، يقوم مترجم 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 دون أي رسالة تحذير/خطأ.
أقوم أيضًا بتضمين 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);
});
هل كانت مفيدة؟

المحلول

1) يمكنك إعادة تفسير الدعامة المستكشف.

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

2) يمكنك إعلان Propelfy ID

mycompany.lib.d.ts

interface Navigator {
  id: any
}

app.ts

navigator.id.request();

شاهد هذا الفيديو http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript/ هناك يخبرنا Anders بأن jQuery.UI يضيف طرقًا جديدة إلى jQuery (انظر 46 دقيقة)

نصائح أخرى

إضافة الشيكات مثل if(navigator.id != null && typeof navigator.id != 'undefined') قبل stmt حيث تتم إحالة navigator.id

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top