簡體   English   中英

推斷對象鍵的類型

[英]Infer the type of object keys

是否可以在TypeScript中聲明結構,以便推斷出分配給jQuery.ajaxerror鍵的function的類型? 然后,如果嘗試分配錯誤的函數簽名,我們可能會報告類型不匹配的情況。

$.ajax({
    type: "POST",
    url: listUrl,
    jsonp: 'jsonp',
    dataType: "jsonp",
    success: OnSuccesCall,
    error: OnErrorCall
});

function OnErrorCall(jqXHR, textStatus, errorThrown) {
    ...
}

應該已經在有限的程度上為您完成了此操作(受您使用的定義和受可選的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發出警告,因為它沒有與成功屬性兼容的簽名,該屬性期望(data:any, textStatus: string, jqXhr: JQueryXHR) => any

請注意,您可以提供忽略所有這些功能的函數,並且該函數將兼容(因為您不必對傳遞的參數做任何事情)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM