brk*_*brk 5 javascript typescript
我正在尝试在 TypeScript 中使用 Fetch API,但由于某种原因我得到了
类型 'string' 不可分配给类型 'RequestMode'。
这是我的代码
export class MainService{
constructor(){}
request(requestObj){
if (!requestObj.url) {
return 'Please provide the end point url'
}
else {
let requestParam = {
method: requestObj.method ? requestObj.method : 'GET',
headers: new Headers(),
mode: 'cors'
};
fetch(endPointHost+requestObj.url,requestParam).then(function(resp){
//^^^ error thrown here
resp.json();
})
}
console.log(" Reached request");
}
}
Run Code Online (Sandbox Code Playgroud)
报告的错误是
TS2345:“
{ method: any; headers: Headers; mode: string; }”类型的参数不可分配给“RequestInit”类型的参数。属性“mode”的类型不兼容。类型“string”不可分配给类型“RequestMode”。
这里的问题是,以后requestParam可能会以不尊重接口的方式进行修改。RequestInit您可以在创建时声明requestParam实现RequestInit:
let requestParam: RequestInit = {
method: requestObj.method ? requestObj.method : 'GET',
headers: new Headers(),
mode: 'cors'
};
Run Code Online (Sandbox Code Playgroud)
或者直接将请求参数放入调用中fetch:
fetch(endPointHost+requestObj.url, {
method: requestObj.method ? requestObj.method : 'GET',
headers: new Headers(),
mode: 'cors'
}).then(function(resp){
resp.json();
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5226 次 |
| 最近记录: |