vue3+ts 使用parseInt报错Argument of type ‘number‘ is not assignable to parameter of type ‘string‘.

场景

在之前习惯使用javascript开发的时候,直接使用parseInt将数字转为整数。而在使用typescript开发时,却出现了报错。
报错内容:Argument of type 'number' is not assignable to parameter of type 'string'.

报错原因

parseInt(string, radix) 函数解析字符串并返回整数。第一个参数为要解析的字符串,第二个参数为要转换的进制基数,默认为十进制。
javascript里会自动对参数进行隐式转换,因此使用parseInt(100)并不会报错,而typescript时报错了。

解决方案

1、toString转为字符串

const data = parseInt((Math.random() * num).toString());

2、使用Math.floor()方法

const data = parseInt(Math.floor((Math.random() * num)));