При использовании idiomati c js, возвращающем неопределенное значение при ошибке, преобразованном в TS
function multiply(foo: number | undefined){
if (typeof foo !== "number"){
return;
};
return 5 * foo;
}
При использовании умножения в новом коде TS возникает проблема с компилятором, считая, что doStuff может вернуть неопределенное значение, когда не может.
Поэтому я попытался написать «небезопасную» версию этой функции, вызываемую безопасным кодом TS, оставив безопасную версию для обычного js кода.
function unsafeMultiply(num: number){
return multiply(num);
}
, поскольку unsafeMultiply может принимать только число, тип guard в умножении должен учитывать, что умножение будет возвращать только число, так как unsafeMultiply может обрабатывать только номер. Если это слишком сложно для компилятора, как я могу заставить его принять, я знаю, что я делаю?