首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >'number‘类型的参数不能赋值给'string’类型的参数- Typescript和Angular

'number‘类型的参数不能赋值给'string’类型的参数- Typescript和Angular
EN

Stack Overflow用户
提问于 2021-06-29 11:09:10
回答 5查看 196关注 0票数 0

我有这样的编码:

代码语言:javascript
运行
复制
        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是这样的:

代码语言:javascript
运行
复制
{
red:[
 "red",
 "red",
 "red",
],
blue:[
 "blue",
 "blue",
 "blue",
 "blue",
],
}

this.item可以是任何数字

我遇到的问题是:

代码语言:javascript
运行
复制
Argument of type 'number' is not assignable to parameter of type 'string'.

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

任何帮助..。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2021-06-29 11:30:15

parseInt的类型为(value: string) => number。也就是说,parseInt是一个将字符串转换为数字的函数...有时候。但是,您传递的是对一对数字group[key].length / parseInt(this.item)调用除法运算符的结果。数字不是字符串。删除包装parseInt并将其替换为对Math.floorMath.ceil的调用,或者如果您可以使用浮点结果,甚至可以完全删除外部调用。

票数 1
EN

Stack Overflow用户

发布于 2021-06-29 11:49:01

您的parseInt参数已经是一个数字。如果要将其转换为整数,只需执行以下操作

代码语言:javascript
运行
复制
Math.round(group[key].length / this.item)`
票数 0
EN

Stack Overflow用户

发布于 2021-06-29 12:07:03

删除parseInt并用Number替换它,如下所示:

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

parseInt()函数解析字符串并返回一个整数。在你的例子中,你使用整数作为parseInt的参数,这就是为什么它会给出错误的原因。

有关parseInt() FunctionNumber() Function的更多信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68172150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档