我正在使用TypeScript 1.7.5和最新的jQuery类型定义 . 以下对$ .getJSON()的调用失败,并显示“错误TS2346:提供的参数与调用目标的任何签名都不匹配”
let url: string = api + '/orgs/' + orgname + '/repos?per_page=100';
$.getJSON(url, function(repos: Repo[]) {
...
});
回购定义为:
export interface Repo {
name: string;
stargazers_count: number;
forks_count: number;
}
getJSON()的类型定义是:
getJSON(url: string, success?: (data: any, textStatus: string, jqXHR: JQueryXHR) => any): JQueryXHR;
我错过了什么?
Update
我发现错误实际上来自链接一个对 error()
的调用,这在常规jQuery中是完全合法的 . 如果我将此调用移至 error()
,则错误消失 . 知道如何处理TypeScript中 getJSON()
的错误吗?
interface Repo {
name: string;
stargazers_count: number;
forks_count: number;
}
var url = "/echo/json/";
$.getJSON(url, (data: any, textStatus: string, jqXHR: JQueryXHR) => {
var repos: Repo[] = data;
//...
alert(JSON.stringify(repos));
})
.error(function() {
callback([]);
});
1 回答
我认为这有助于:
请检查jsfiddle .
更新1 .
您应该使用“fail”来处理错误: