0
我正在寫入數組的擴展,並試圖將流式檢測與流式合併,但有一個錯誤,我似乎無法解決。解決流程類型錯誤
下面的函數Sum有一個可選的變量參數,如果變量未定義,則給它一個默認值。然後循環遍歷數組,如果元素是數字,則應用變換函數並將結果添加到sum中。
流程發出警告:「函數不能在可能的未定義值上調用」。我認爲變壓器被定義並且是一種功能的檢查應該可以緩解這種情況?什麼是最好的解決方案?
// @flow
export function Sum(transformer : ?(a : number) => number) : number {
const transformerIsUndefined = typeof(transformer) === "undefined";
if (!transformerIsUndefined && typeof(transformer) !== "function") {
throw "Transform argument must be a function";
}
if (transformerIsUndefined) {
transformer = item => item;
}
let i : number = 0;
let sum : number = 0;
while (i < this.length) {
if (typeof(this[i]) === "number") {
sum += transformer(this[i]);
} else {
throw "Non-numerical element in the array.";
}
i++;
}
return sum;
}