使用惯用的 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 只能接受一个数字,因此 multiply 中的类型保护应该考虑到 multiply 只会返回一个数字,因为 unsafeMultiply 只能处理数字。如果这对编译器来说太复杂了,我该如何强迫他接受我知道我在做什么?