1
我是flowjs的新手,但尚未理解未定義參數的典型用例應如何在flowjs中建模。如何指定flowjs中可以未定義的參數
function msg(message: string, callback: ?Function) {
// ...
if (_.isFunction(callback)) {
callback();
}
}
當檢查具有流量上述功能,示出了以下錯誤消息:
- 功能不能在可能空值的函數調用被調用。
- 功能不能被稱爲上可能未定義值
我不明白,爲什麼顯示的錯誤,但我不知道如何告訴flowjs,這是故意的,因爲回調時纔會激活,當參數不null或undefined?
看起來像這樣應該工作,不知道發生了什麼。也許嘗試更具體的'if(typeof callback ==='function'){'。另外,爲了更好地隔離問題,確保你沒有代替'// ...'的代碼。另外,實際的流量錯誤打印輸出可能會有所幫助。 – Nikita
知道這應該實際工作已經有所幫助。我的例子是(一如既往)泛型和在我的實際生產代碼中,我通常以更明確的方式做空檢查,如if(_.isFunction(callback)) – doberkofler
那麼,這解釋了它。 Flow不知道'_.isFunction(callback)'只有在'callback'是一個函數時才返回'true'。它只知道它返回一個布爾值(如果你有設置下劃線/ lodash的接口文件)。您應該執行原生JS檢查,然後Flow可以*修改從'Function'到'Function'的回調類型。 – Nikita