TypeScript中是否可以声明一个结构,以便推断分配给function
中error
键的jQuery.ajax
的类型?然后,如果尝试分配错误的函数签名,我们就可以报告类型不匹配。
$.ajax({
type: "POST",
url: listUrl,
jsonp: 'jsonp',
dataType: "jsonp",
success: OnSuccesCall,
error: OnErrorCall
});
function OnErrorCall(jqXHR, textStatus, errorThrown) {
...
}
答案 0 :(得分:1)
这应该已经在有限的范围内(由the definition you are using限制,并且由充满可选性的jQuery API完成)。
var listUrl = 'http://www.example.com/';
function OnSuccessCall (data, thing: boolean, another: boolean) {
// implementation
}
function OnErrorCall () {
// implementation
}
$.ajax({
type: "POST",
url: listUrl,
jsonp: 'jsonp',
dataType: "jsonp",
success: OnSuccessCall,
error: OnErrorCall
});
在上面的示例中,OnSuccessCall
将导致TypeScript发出警告,因为它没有与success属性兼容的签名,该属性需要(data:any, textStatus: string, jqXhr: JQueryXHR) => any
。
请注意,您可以提供一个省略任何这些功能的功能,它将兼容(因为您不必对传递的参数执行任何操作)。