Pertanyaan XMLHttpRequest tidak ada pada tipe Window


Saya sedang mengerjakan pustaka async kecil untuk proyek saya. Saya memutuskan untuk mengkodekannya dalam TypeScript, tetapi compiler saya melemparkan saya kesalahan itu 'XMLHttpRequest' does not exist on type 'Window', seperti judulnya.

Yang ingin saya capai adalah pembuatan ActiveXObject jika jendela tidak memiliki permintaan XMLHttprequest.

if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
 } else {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

Tidak perlu bagi saya untuk memasukkannya, tetapi saya bertanya-tanya mengapa demikian?


IDE Saya menggunakan adalah VS Code (yang juga menunjukkan saya kesalahan) dan saya kompilasi dengan gulp-tsify


5
2018-01-04 22:40


asal


Jawaban:


Coba ini:

if ((<any>window).XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
} else {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

Masalahnya adalah itu Typescript memiliki tipe untuk setiap objek di mana ia mendefinisikan sifat-sifat jenis itu, terkadang ada properti yang hilang (atau properti yang ditambahkan secara dinamis nanti) dari definisi tersebut, jika Anda mentransmisikannya ke jenis any maka itu akan menghadapinya sebagai tipe anonim.


10
2018-01-04 22:49