You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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张三

额外检查点

  1. 确认导入路径../model/myModelClass.ts拼写正确,文件位置无误
  2. 别把Mymodel类和IMymodel接口搞混使用
  3. 如果是在Angular/Vue/React等框架中使用,确保实例化逻辑在正确的生命周期阶段执行

内容的提问来源于stack exchange,提问作者SjVnyk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:59:23