我有这样的编码:
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));
任何帮助..。
发布于 2021-06-29 11:30:15
parseInt
的类型为(value: string) => number
。也就是说,parseInt
是一个将字符串转换为数字的函数...有时候。但是,您传递的是对一对数字group[key].length / parseInt(this.item)
调用除法运算符的结果。数字不是字符串。删除包装parseInt
并将其替换为对Math.floor
、Math.ceil
的调用,或者如果您可以使用浮点结果,甚至可以完全删除外部调用。
发布于 2021-06-29 11:49:01
您的parseInt参数已经是一个数字。如果要将其转换为整数,只需执行以下操作
Math.round(group[key].length / this.item)`
发布于 2021-06-29 12:07:03
删除parseInt
并用Number
替换它,如下所示:
Number(group[key].length / this.item)
parseInt()
函数解析字符串并返回一个整数。在你的例子中,你使用整数作为parseInt
的参数,这就是为什么它会给出错误的原因。
https://stackoverflow.com/questions/68172150
复制相似问题