如何让Typescript将数字识别为数字?

时间:2013-06-22 12:27:13

标签: javascript typescript

我正在尝试做一些简单的数学运算,应该是从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编译器需要什么才能将enteredMilesstoredMiles视为相同的“类型”数字,以便我可以进行数学运算?

1 个答案:

答案 0 :(得分:6)

这是因为Number与数字不同。以下将解决它:

var storedMiles = parseInt(request.responseText);

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

var storedMiles = parseInt(request.responseText,10);
var enteredMiles = parseInt((<HTMLTextAreaElement>document.getElementById("txtMiles")).value,10);
var intervalMiles = (enteredMiles - storedMiles);

更多说明:

以下是一些代码,向您展示数字和数字之间的基本区别:

var num = 3;
var Num = new Number(3); 

console.log(typeof num); // number 
console.log(typeof Num); // object 

Try it