TypeScript调用toString(16)报错“预期0个参数但传入1个”如何解决
报错原因
你定义的ImageToEncode类型中,pixelsAndColors、bounds两个字段被声明为string类型的多维数组。string类型的toString()方法不支持传入任何参数,只有number类型的toString()方法才允许传入进制参数来转换不同进制的字符串,因此TypeScript类型校验触发了参数不匹配的报错。
修复方案
- 优先修正类型定义:如果这两个字段实际存储的是数字值,直接把嵌套的
string类型替换为number即可,修改后的类型如下:
type ImageToEncode = { pixelsAndColors: number[][][]; bounds: number[][][]; paletteIndex: string; }
- 兼容字符串数字场景:如果业务侧拿到的这两个字段确实是字符串格式的数字,调用
toString(16)前先把值转为数字类型即可,例:
将array[0].toString(16)修改为Number(array[0]).toString(16),其余调用toString(16)的位置做相同修改即可正常执行。
内容的提问来源于stack exchange,提问作者Cizia
相关产品推荐
相关产品推荐

