我正在使用Typescript作爲需要使用JavaScript全屏API的Web應用程序。全屏API尚未得到官方支持,因此您必須使用供應商前綴。這裏是我的代碼的基礎上,將樣品從MDN:如何讓打字稿停止抱怨不知道的功能?
function toggleFullScreen(element: JQuery) {
var fs = element[0];
if (!document.fullscreenElement && // alternative standard method
!document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) { // current working methods
if (fs.requestFullscreen) {
fs.requestFullscreen();
} else if (fs.msRequestFullscreen) {
fs.msRequestFullscreen();
} else if (fs.mozRequestFullScreen) {
fs.mozRequestFullScreen();
} else if (fs.webkitRequestFullscreen) {
fs.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
}
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
}
}
然而,在我的IDE(Visual Studio中,但是這會發生在任何地方),我得到這樣的錯誤:
The property 'fullscreenElement' does not exist on value of type 'Document'.
The property 'mozFullScreenElement' does not exist on value of type 'Document'.
The property 'webkitFullscreenElement' does not exist on value of type 'Document'.
當然打字本可以」我知道這些函數存在,但我也不想重新聲明文檔爲any
只是爲了擺脫這些錯誤,因爲那樣我就會失去所有其他類型的提示。
這裏有什麼解決方案?如何讓TypeScript停止抱怨,但保留儘可能多的類型註釋?
也許創建['.d.ts'文件(http://www.typescriptlang.org /手冊#寫DTS-文件)? (或者在這個特定的情況下,找到一個其他人已經創建 - 如果沒有,分享你做的一個...) – 2014-09-23 11:30:15