我正在学习Angular,我想写一个方法,如果对象的类型是Dog
(它有一个woof
属性),则返回true
。
这是我到目前为止所拥有的:
export class SomeClass {
public animal?: Dog | Cat;
...
public isDog() {
return 'woof' in this.animal; <-- Object is possibly 'undefined'
}
}
然后我以这种方式显示基于对象类型的内容:
<div *ngIf="isDog(); then dogCardTemplate else catCardTemplate"></div>
我的问题是this.animal
可能是未定义的,并出现以下错误:
Object is possibly 'undefined'.
你能帮我用尽可能少的代码行以简单的方式解决这个问题吗?
2条答案
按热度按时间mbzjlibv1#
检查是否正确的方法如下:
为什么?
既然属性是可选的,我们需要检查它是否被定义,只有在那之后我们才能检查它是否是一只狗。
注意:如果你想检查它是一只猫,你将需要重复未定义的检查。
li9yvcax2#
我建议你不要直接在html Using setters and getter variables on HTML (angular component)上使用'get'方法
那么如果你100%确定这个动物不能被定义,?可以被移除
或者关注IDK4real的答案