2

我正在尝试使用从 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.

编译器将波浪线放在enteredMiles行内var intervalMiles = (enteredMiles - storedMiles);

我无法在文档中找到有关如何更正该错误的任何内容。我也没有找到自己进行转换的方法。TypeScript 编译器需要什么来将 theenteredMiles和 thestoredMiles视为相同的数字“类型”,以便我可以进行数学计算?

4

1 回答 1

6

这是因为数字与数字不同。以下将修复它:

var storedMiles = parseInt(request.responseText);

完整的代码(也与史蒂夫指出的基数):

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 

试试看

于 2013-06-22T12:53:56.803 回答