下面的例子给出了正确的计算,但由于某种原因,p.calcPrice是一个字符串.我认为它是一个数字,因为.toFixed()在字符串中没有意义.

每当我使用p.calcPrice时,我是不是必须将其转换为+p.calcPrice,或者我可以将Typescript 视为一个数字,这样我就不必转换它了?

p.calcPrice = (
  price *
  +p.amount *
  (1 - pD / 100) *
  (1 - mD / 100)
).toFixed(2);

推荐答案

toFixed返回一个字符串,您必须手动转换它.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed#return_value

铸造的一种方法是用数字将其包裹起来:

p.calcPrice = Number((price * +p.amount * (1 - pD / 100) * (1 - mD / 100)).toFixed(2));

Typescript相关问答推荐

ReturnType此索引方法与点表示法之间的差异

React-Native运行方法通过监听另一个状态来更新一个状态

界面中这种类型的界面界面中的多态性

TS不推断类型在条件判断后具有属性'

在NextJS中获得Spotify Oauth,但不工作'

更新为Angular 17后的可选链运算符&?&问题

如何在Reaction路由v6.4加载器和操作中获得Auth0访问令牌?

适当限制泛型函数中的记录

了解类型规则中的关键字

尽管对象的类型已声明,但未解析的变量<;变量

为什么我的动画状态在组件实例之间共享?

是否有可能避免此泛型函数体中的类型断言?

使用泛型识别对象值类型

如何创建由空格连接的多个字符串的类型

带投掷的收窄类型

从类型脚本中元组的尾部获取第n个类型

打印脚本中正则函数和函数表达式的不同类型缩小行为

对于VUE3,错误XX不存在于从不存在的类型上意味着什么?

如何按成员资格排除或 Select 元组?

使用嵌套属性和动态执行时,Typescript 给出交集而不是并集