TypeScript将string转换为数字
任何人有关如何将string转换为数字在TypeScript的build议?
var aNumber : number = "1"; // --> Error // Could this be done? var defaultValue = 0; var aNumber : number = "1".toInt32(defaultValue); // Or .. var defaultValue = 0; var aNumber : number = StringToInt("1", defaultValue); 更新:我做了一些额外的困惑,我已经想出了最好的沙发:var aNumber:number =(“1”)* 1;
检查一个string是否是数字在这里回答: 在打字稿中,如何检查一个string是否是数字 。
 您可以使用parseInt或parseFloat函数,或者使用一元+运算符: 
 var x = "32"; var y = +x; // y: number 
打字稿的方式是:
 Number('1234') // 1234 Number('9BX9') // NaN 
如在这里回答: https : //stackoverflow.com/a/23440948/2083492
阐述Ryan所说的,TypeScript总体上包含了JavaScript的习惯用法。
 var n = +"1"; // the unary + converts to number var b = !!"2"; // the !! converts truthy to true, and falsy to false var s = ""+3; // the ""+ converts to string via toString() 
JavaScripttypes转换中所有有趣的深入细节。
对于我们的Angular用户:
  Number(x)和parseInt(x)在模板中引发错误, +x不起作用。 有效的投射将是x*1或x/1 。 
如其他答案所示,有多种方法可以进行转换:
 Number('123'); +'123'; parseInt('123'); parseFloat('123.45') 
 但是我想在parseInt上再提一点。 
 当使用parseInt , 总是传递基数参数是有意义的。 对于十进制转换,即10 。 这是参数的默认值,这就是为什么可以省略。 对于二进制,对于hex是2和16 。 实际上,2和36之间的任何基数都可以工作。 
 parseInt('123') // 123 (don't do this) parseInt('123', 10) // 123 (much better) parseInt('1101', 2) // 13 parseInt('0xfae3', 16) // 64227 
  parseInt函数,分析string将其转换为数字。 在一些JS实现中, parseInt将前导零parsing为八进制: 
尽pipeECMAScript 3不鼓励ECMAScript 3和ECMAScript 5禁止,但许多实现将以0开头的数字string解释为八进制。 以下可能有一个八进制结果,或者可能有一个十进制结果。 总是指定一个基数来避免这种不可靠的行为。
– MDN
代码变得更清晰的事实是指定基数参数的一个很好的副作用。
 由于parseFloat仅以10为基数来分析数值expression式,所以这里不需要radix参数。 
更多关于这个:
- 为什么我们需要使用基数? (SO问题)
- SO回答“parseInt()和Number()之间有什么区别?”
 在Typescript中有像parseInt() , parseFloat()和Number()这样的内置函数,你可以使用这些函数。