在Angular应用程序中,我有一个非常简单的名为enum
的{{1}}。我也有一个API响应对象,其属性之一就是这种AlertType
类型。如下所示:
enum
在某些情况下,未设置此export class ScanAlertModel {
public alertId: string;
public alertType: AlertType
}
属性。我正在尝试使用alertType
进行测试。在我的Angular应用程序中,要能够为未附加Jasmine
的{{1}}过滤Array<AlertModel>
,我可以简单地应用如下过滤器:
alert
这正常。但是,当我的JSON包含根本没有alerttype
的{{1}}实体时,我尝试测试此过滤的测试(作为更大的功能测试的一部分)无法正确过滤出记录。>
很显然,这使我感到困惑。任何帮助,将不胜感激。谢谢。
答案 0 :(得分:2)
首先,如果有时不存在alertType
,请使用:?
将其声明为可选,如下所示:
export class ScanAlertModel {
public alertId: string;
public alertType?: AlertType;
}
您的过滤器无法始终正常运行的原因是,如果未设置属性 ,则该属性将不严格等于null
。
更好的选择是使用hasOwnProperty()
:
this.scanAlerts.filter(alert => !alert.hasOwnProperty('alertType'));