TypeScript - 调用 jQuery getJSON() 函数时出错
TypeScript - Error calling jQuery getJSON() function
我正在使用 TypeScript 1.7.5 和最新的 jQuery 类型定义。以下对 $.getJSON() 的调用失败并显示 "error TS2346: Supplied parameters do not match any signature of call target"
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;
我错过了什么?
更新
我发现这个错误实际上是来自对 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([]);
});
我认为这可以帮助:
$.getJSON(url, (data: any, textStatus: string, jqXHR: JQueryXHR) => {
var repos: Repo[] = data;
//...
});
请检查jsfiddle。
更新 1.
你应该使用"fail"来处理错误:
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));
})
.fail(function() {
alert("error!");
//callback([]);
});
我正在使用 TypeScript 1.7.5 和最新的 jQuery 类型定义。以下对 $.getJSON() 的调用失败并显示 "error TS2346: Supplied parameters do not match any signature of call target"
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;
我错过了什么?
更新
我发现这个错误实际上是来自对 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([]);
});
我认为这可以帮助:
$.getJSON(url, (data: any, textStatus: string, jqXHR: JQueryXHR) => {
var repos: Repo[] = data;
//...
});
请检查jsfiddle。
更新 1.
你应该使用"fail"来处理错误:
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));
})
.fail(function() {
alert("error!");
//callback([]);
});