Tôi đang sử dụng Personas dựa trên số proprietary property navigator.id
. Kể từ khi khách sạn này là không đạt tiêu chuẩn, trình biên dịch nguyên cảo tạo ra các cảnh báo sau đây:Cách xử lý cảnh báo cho thuộc tính sở hữu/tùy chỉnh của các đối tượng tích hợp trong 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'
Nhưng những tập tin .js được tạo thành công và chạy trên trình duyệt FF15 mà không cần bất kỳ thông điệp cảnh báo/lỗi.
Tôi cũng bao gồm một polyfill cho navigator.id
, theo hướng dẫn của tài liệu, vì vậy navigator.id
chắc chắn sẽ có sẵn trong mọi trình duyệt.
Ai đó có thể đề xuất tôi cách xử lý cảnh báo này?
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);
});
'navigator' là gì? Nó từ đâu tới? Nó được tuyên bố như thế nào? –
@Sidharth: https://developer.mozilla.org/en-US/docs/DOM/window.navigator –
Có thể có liên quan: https://developer.mozilla.org/en-US/docs/DOM/navigator.id ... đó là một tài sản phi tiêu chuẩn. –