簡體   English   中英

功能類型的類型防護

[英]Type guard of function type

我有一個在string和函數類型之間具有聯合類型的函數。 我該如何寫一個類型防護來縮小到該函數類型? (以下操作無效。)

interface Callback {
    (args: any[]): void
}

var fn = function(arg: string | Callback) {
    if (typeof arg == 'Callback') {
        arg.call([]);
    }
}

typeof永遠不會返回'Callback' 在這種情況下,它將執行instanceof Function檢查:

interface Callback {
    (args: any[]): void
}

var fn = function(arg: string | Callback) {
    if (arg instanceof Function) {
        arg.call([]);
    }
};

另外,這也可以:

if (typeof arg === "function") {
    arg.call([]);
}

暫無
暫無

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

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