我正在尝试用从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“类型”,以便我可以进行数学运算?
发布于 2013-06-22 20:53:57
这是因为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 Try it
https://stackoverflow.com/questions/17250698
复制相似问题