作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试对 request.ReponseText 返回的数字和输入到文本框中的数字进行一些简单的数学计算。这是代码
//var storedMiles : number = new Number(request.responseText);
var storedMiles = new Number(request.responseText);
var enteredMiles = parseInt((<HTMLTextAreaElement>document.getElementById("txtMiles")).value);
var intervalMiles = (enteredMiles - storedMiles);
我从 TypeScript 编译器得到的错误是:
The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
编译器将波浪线放在 var intervalMiles = (enteredMiles - storedMiles);
行中的 enteredMiles
下。
我无法在文档中找到有关如何更正该错误的任何内容。我也没有找到自己进行转换的方法。 TypeScript 编译器需要什么才能将 enteredMiles
和 storedMiles
视为相同“类型”的数字,以便我可以进行数学计算?
最佳答案
这是因为 Number 与 number 不同。以下将修复它:
var storedMiles = parseInt(request.responseText);
完整代码(也有 steve 指出的基数):
var storedMiles = parseInt(request.responseText,10);
var enteredMiles = parseInt((<HTMLTextAreaElement>document.getElementById("txtMiles")).value,10);
var intervalMiles = (enteredMiles - storedMiles);
更多说明:
下面是一些代码,向您展示 Number 和 number 之间的基本区别:
var num = 3;
var Num = new Number(3);
console.log(typeof num); // number
console.log(typeof Num); // object
关于javascript - 如何让 Typescript 将数字识别为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17250698/
我是一名优秀的程序员,十分优秀!