【发布时间】:2022-01-16 10:14:29
【问题描述】:
当我有这样的功能时,我不会抱怨:
const roundToTwo = (num: number) => {
return +(Math.round(+(num + "e+2")) + "e-2");
};
当我将鼠标悬停在 VS Code 中的函数名称上时,我可以看到它正在返回一个数字:const roundToTwo: (num: number) => number。
但是当我尝试像这样定义返回类型时:
const roundToTwo: number = (num: number) => {
return +(Math.round(+(num + "e+2")) + "e-2");
};
我收到此错误:
Type '(num: number) => number' is not assignable to type 'number'.
为什么会这样或者我做错了什么?
【问题讨论】:
-
const roundToTwo: (num: number) => number = num => { ... } -
+(num + "e+2")?除了让阅读您的代码的人感到困惑之外,与num * 100相比有什么优势吗? -
@Clashsoft,请原谅我的经验不足。当我尝试
return Math.round(num * 100) / 100;时,它对我来说无法正确舍入,我不知道为什么,但我决定在您发表评论后再试一次,现在它可以正常工作了。一定是教授光环什么的。