类型错误
快速摘要
你试图对某种类型的数据执行不支持的操作,比如对字符串调用数组方法,或对数字做字符串拼接的方式不对。
为什么发生
对错误类型的数据调用了不适用该类型的方法或运算符
函数期望收到某种类型的参数,却传入了另一种类型
动态类型语言中变量类型在运行时被悄悄改变
最小示例
✗ 错误代码
const num = "10";
console.log(num.toFixed(2));✓ 修复代码
const num = Number("10");
console.log(num.toFixed(2));"10" 是字符串,字符串没有 toFixed 方法。先用 Number() 转成数字类型即可调用。
如何诊断
查看错误信息中提到的具体值和操作
在出错位置前用
console.log或print打印变量的实际类型检查函数签名或文档,确认期望的参数类型
如何修复
在执行操作前显式做类型转换(如
Number(str)、int(x))用条件判断先校验类型,再执行操作
如果是函数参数,加上类型注解或运行时类型检查
如何预防
使用 TypeScript、mypy 等静态类型检查工具在编码时捕获类型问题
在函数边界处做参数校验,尽早暴露类型不匹配