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)));