在ngOnInit()
方法中,我从缓存中查找对象,然后尝试执行该对象的类中定义的方法。
看起来像是
ngOnInit() {
let modelClass: ModelClass = cache.modelClass;
modelClass.doSomething();
}
并且模型类的定义类似于
export class ModelClass{
constructor(
public property: string
){}
doSomething(){
//doing something here
}
}
但是当正在加载组件并且正在调用它的ngOnInit()方法时,在modelClass.doSomething()的行上会出现错误 modelClass.doSomething不是函数。
那么为什么ModelClass'方法没有认识到?
答案 0 :(得分:0)
您确定此时已定义cache.modelClass
吗?您可能正在尝试在null对象上调用该方法。
在打字稿中,默认情况下声明是公开的,因此应该公开该方法以供您调用。
答案 1 :(得分:0)
最有可能cache.modelClass
不返回ModelClass
的实例,而是返回其他内容。您可以像这样添加支票:
let modelClass: ModelClass = cache.modelClass instanceof ModelClass ? cache.modelClass : new ModelClass();