Angular 4中无法调用模型类方法:ERROR TypeError: act.sayHi is not a function
解决
TypeError: act.sayHi is not a function 问题 这个错误的核心原因几乎可以肯定是:你在组件中使用的act变量不是Mymodel类的实例——大概率只是个符合IMymodel接口结构的普通对象,而接口仅定义属性结构,不会包含类里的sayHi方法实现。
错误的常见场景
比如你可能在组件里写了类似这样的代码:
// 错误:这只是普通对象,不是Mymodel实例,没有sayHi方法 const act: IMymodel = { name: "张三", address: "北京", age: 25 }; act.sayHi(); // 触发报错:sayHi is not a function
正确的解决方案
你需要通过new关键字创建Mymodel类的实例,这样实例才会继承类里的方法:
修改后的MyComponent.ts代码示例
import { IMymodel, Mymodel } from '../model/myModelClass.ts'; // 正确:实例化Mymodel类 const act = new Mymodel(); // 给实例赋值属性 act.name = "张三"; act.address = "北京"; act.age = 25; // 现在可以正常调用sayHi方法了 act.sayHi("张三"); // 控制台输出 Hiii张三
额外检查点
- 确认导入路径
../model/myModelClass.ts拼写正确,文件位置无误 - 别把
Mymodel类和IMymodel接口搞混使用 - 如果是在Angular/Vue/React等框架中使用,确保实例化逻辑在正确的生命周期阶段执行
内容的提问来源于stack exchange,提问作者SjVnyk
相关产品推荐
相关产品推荐

