📅  最后修改于: 2023-12-03 15:27:27.053000             🧑  作者: Mango
当在 TypeScript 程序中存在以下代码时:
const xhr: XMLHttpRequest = new XMLHttpRequest();
xhr.open('GET', 'https://example.com/api');
xhr.send();
xhr.addEventListener('load', () => {
const result = xhr.result; // error
});
在将 XMLHttpRequest
的响应结果赋值给 result
变量时,TypeScript 编译器会报错并提示:
类型“XMLHttpRequest”上不存在属性“result”。
这是因为 XMLHttpRequest
并不具有 result
属性。
可以将 result
属性更改为 response
属性,因为 XMLHttpRequest
相应的数据保存在 response
属性中。
const xhr: XMLHttpRequest = new XMLHttpRequest();
xhr.open('GET', 'https://example.com/api');
xhr.send();
xhr.addEventListener('load', () => {
const result = xhr.response;
});
这样可以避免编译器的报错。
当 TypeScript 报错指出某个类型的属性不存在时,需要检查代码中是否使用了错误的属性。在需要获取 XMLHttpRequest
响应数据时,应该使用 response
属性而非 result
属性。