背景是我在一個函式中呼叫一個函式,該函式可以回傳一個字串或一個數字,并希望將其添加到另一個值。但是我遇到了那個錯誤。
我試過做檢查
function addNumbers(obj):number | string {
const returnedValue = helperFunction(obj.blah) //this could be a number or string
if (Number.isNaN(returnedValue) === false) {
return returnedValue anotherValue;
}
return ‘-’;
我認為 Number.isNaN 會擺脫錯誤,但事實并非如此。有什么想法嗎?
uj5u.com熱心網友回復:
Number.isNaN專門檢查 value NaN。NaN是一個特殊的數字,由類似的計算回傳0/0。大多數數字和所有字串都會導致Number.isNaNreturn false,因此不會縮小型別以排除字串。
相反,我建議您這樣做:
if (typeof returnedValue === 'number') {
return returnedValue anotherValue;
}
uj5u.com熱心網友回復:
用 () 包裝型別,例如: (number | string)
但是它仍然會失敗,因為您最后也會回傳 null
所以你的回傳型別應該是 (number | string | null)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/405751.html
標籤:
上一篇:匯出具有不同名稱和型別的相同函式
