症状
调用失败并报 TypeError: something is not a function。被调用的值要么是 undefined,要么是错误类型的对象,或是与接收者分离的方法。这常发生在改动导入方式(如默认导出与具名导出互换)之后,或把对象方法作为回调传递而未绑定时,后者会丢失 this。
诊断
在调用处打印 typeof 与值本身;用动态 import 查看模块导出形状;检查方法是否需要 bind。
console.log(typeof target, target)
根因
调用处的值不可调用,因为它是 undefined、是导入形状错误的对象,或是被分离的方法,而非函数定义缺失。
修复
修正导入方式、属性名或对象结构;对方法进行 bind 或在接收者上调用,使 this 已定义。
验证
重跑该路径确认调用成功,并通过检查副作用或返回值确认函数确实执行。调用成功且行为正确才是真正的修复。
常见陷阱
把方法直接作为回调传入会丢失 this;应使用绑定函数或箭头包装。