角度打字稿将字符串转换为数字

时间:2021-02-04 19:47:05

标签: angular typescript

我想将 string number(表示为字符串的整数。例如 "12" )转换为 number

模型类

export class Person{
  FirstName :  string | undefined ;
  Telephone:  number | undefined ;

}

TS 文件

  console.log("Person" + JSON.stringify(this.person));

JSON 显示为

{
    "FirstName ": "hhhhh",
    "Telephone": "1478525",
}

电话属性是一个数字,我希望它显示如下(没有“”_:

{
    "FirstName ": "hhhhh",
    "Telephone": 1478525,
}

我采取的方法。

this.person.Telephone = parseInt(telephone); 

以上不起作用,它显示了用 string 括起来的相同数字。我还尝试了以下方法:

this.person.Telephone as number

这两种方法都不起作用。有人可以帮我解决这个问题吗?

如果我不转换为数字,则会出现错误:

<块引用>

“无法将 JSON 值转换为 System.Int32。路径: $.电话|行号:2 | BytePositionInLine:18。"

4 个答案:

答案 0 :(得分:1)

我想你可以试试这个 =>

let stringToNumberData = "123";
let numberValue = Number(stringToNumberData);
console.log(numberValue);
//Returns 123

if(!isNaN(Number(stringToNumberData ))){
  let numberValue = Number(stringToNumberData );
  console.log(numberValue);
} else{
    console.log('Not a Number');
}

答案 1 :(得分:1)

只需使用标准的 javascript Number

this.person.Telephone = Number(telephone); 
console.log("Person" + JSON.stringify(this.person));

答案 2 :(得分:0)

您可以使用一元运算符 +

export class Person{
  FirstName :  string | undefined;
  Telephone:  number | undefined;
}
let person = new Person();
person.FirstName = "Name";
person.Telephone = 12345;
console.log(person);
person.Telephone = +"12345";
console.log(person);

输出:

Person { FirstName: 'Name', Telephone: 12345 }
Person { FirstName: 'Name', Telephone: 12345 }

PS:使用字符串作为电话号码的数据类型。

答案 3 :(得分:0)

如果您想从字符串中获取数字,可以使用这种方法。

let person = {
name: "Some Name",
age: "45"
};

console.log('Person obj before modification ==>', person);

person.age = parseInt(person.age, 10);

console.log('Person object after modifying ==>', person);