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