Skip to content

类型错误

快速摘要

你试图对某种类型的数据执行不支持的操作,比如对字符串调用数组方法,或对数字做字符串拼接的方式不对。

为什么发生

  • 对错误类型的数据调用了不适用该类型的方法或运算符

  • 函数期望收到某种类型的参数,却传入了另一种类型

  • 动态类型语言中变量类型在运行时被悄悄改变

最小示例

✗ 错误代码
const num = "10";
console.log(num.toFixed(2));
✓ 修复代码
const num = Number("10");
console.log(num.toFixed(2));

"10" 是字符串,字符串没有 toFixed 方法。先用 Number() 转成数字类型即可调用。

如何诊断

  • 查看错误信息中提到的具体值和操作

  • 在出错位置前用 console.logprint 打印变量的实际类型

  • 检查函数签名或文档,确认期望的参数类型

如何修复

  • 在执行操作前显式做类型转换(如 Number(str)int(x)

  • 用条件判断先校验类型,再执行操作

  • 如果是函数参数,加上类型注解或运行时类型检查

如何预防

  • 使用 TypeScript、mypy 等静态类型检查工具在编码时捕获类型问题

  • 在函数边界处做参数校验,尽早暴露类型不匹配

相关资源

相关术语

相关课程

相关练习

← 返回语言