Enum类型的JSON属性不喜欢`null`检查

时间:2018-07-27 00:16:06

标签: json angular typescript enums null

在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}}实体时,我尝试测试此过滤的测试(作为更大的功能测试的一部分)无法正确过滤出记录。

很显然,这使我感到困惑。任何帮助,将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

首先,如果有时不存在alertType,请使用:?将其声明为可选,如下所示:

export class ScanAlertModel {
    public alertId: string;
    public alertType?: AlertType;
}

您的过滤器无法始终正常运行的原因是,如果未设置属性 ,则该属性将不严格等于null

更好的选择是使用hasOwnProperty()

this.scanAlerts.filter(alert => !alert.hasOwnProperty('alertType'));