首页 > 解决方案 > “数字”类型的参数不可分配给“字符串”类型的参数 - Typescript 和 Angular

问题描述

我有这个编码:

        this.arrayTemp = [];
          interface tempFull {
             num: number;
             name: string;
          }
          for (const key in group) {
              let temp = {} as tempFull;
             temp.num = parseInt(group[key].length / this.item);
             temp.name = group[key][0];
             if (temp.num >= 1){
               this.arrayTemp.push(temp);
             }
          }

对象Group是这样的:

{
red:[
 "red",
 "red",
 "red",
],
blue:[
 "blue",
 "blue",
 "blue",
 "blue",
],
}

并且this.item可以是任何数字

我遇到的问题是:

Argument of type 'number' is not assignable to parameter of type 'string'.

    46              temp.num = parseInt(group[key].length / parseInt(this.item));

任何帮助....

标签: javascriptangulartypescript

解决方案


删除并用likeparseInt替换它:Number

Number(group[key].length / this.item)

parseInt()函数解析一个字符串并返回一个整数。在您的情况下,您将整数作为参数,parseInt这就是它给出错误的原因。

有关parseInt() 函数Number() 函数的更多信息


推荐阅读