给定一个数字的字符串表示,如何在TypeScript中将其转换为数字类型?

var numberString: string = "1234";
var numberValue: number = /* what should I do with `numberString`? */;

当前回答

如这里的其他答案所示,有多种方法进行转换:

Number('123');
+'123';
parseInt('123');
parseFloat('123.45')

不过,我想再提一件关于parseInt的事情。

使用parseInt时,始终传递基数参数是有意义的。对于十进制转换,即10。这是参数的默认值,因此可以省略它。对于二进制,它是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

在一些JS实现中,parseInt将前导零解析为八进制:

尽管ECMAScript 3不鼓励使用ECMAScript5,但许多实现将以前导0开头的数字字符串解释为八进制。以下内容可能有八进制结果,也可能有十进制结果。始终指定基数以避免这种不可靠的行为。-多目标网络

代码变得更清晰是指定基数参数的一个很好的副作用。

因为parseFloat只解析基数为10的数字表达式,所以这里不需要基数参数。

更多信息:

为什么我们需要使用基数?(SO问题)所以回答“parseInt()和Number()之间的区别是什么?”

其他回答

有很多人在转换数据类型时遇到了问题。在离子编程的情况下,转换数据类型很难解决,因为这种语言是新的,这里我将详细说明用户如何将数据离子类型转换为字符串数据类型整数。

在诸如java、php、c、c++等编程语言中。。。所有这些都可以轻松地移动数据,然后在ionic中也可以为我们创建数据转换,这也是一种简单的方式,尤其是在其他编程语言中。

this.mPosition = parseInt("");

打字方式如下:

Number('1234') // 1234
Number('9BX9') // NaN

如这里所回答的:https://stackoverflow.com/a/23440948/2083492

typescript需要知道我们的var a将是Number | | String

export type StringOrNumber = number | string;

export function toString (v: StringOrNumber) {
 return `${v}`;
}


export function toNumber (v: StringOrNumber) {
 return Number(v);
}

export function toggle (v: StringOrNumber) {
 return typeof v === "number" ? `${v}` : Number(v);
}

如果你只是在谈论类型,就像其他人所说的那样,parseInt()等将返回正确的类型。此外,如果由于任何原因,该值可能是数字或字符串,并且您不想调用parseInt(),则typeof表达式也将强制转换为正确的类型:

function f(value:number|string){
  if(typeof value==='number'){
   // value : number
  }else {
   // value : string
  }
}

有三种方法

 let a = + '12'; 
 let b = parseInt('12' , 10); // 10 means decimal number
 let c = Number('12');