检查typescript中非null前置条件的最佳方法



想象一下你想要检查相等性的firebase时间戳,如下所示:

if (!a.timestamp.isEqual(b.timestamp){
//Do stuff because timestamp of a and b are not equal
}

如果a为null或a的时间戳为null,这显然会失败(如果b的时间戳是null,这也会失败吗?(。假设a和b不为空。确保上述声明有效的最佳方法是什么。这似乎有点复杂:

if (a.timestamp === null && b.timestamp !== null ||
a.timestamp !== null && b.timestamp === null ||  
a.timestamp !== null && !a.timestamp.isEqual(b.timestamp))
{
//Do stuff because timestamp of a and b are not equal
}

您可以稍微简化一下:

if ((a.timestamp === null && b.timestamp !== null) ||
(a.timestamp !== null && !a.timestamp.isEqual(b.timestamp)) )

然后,如果a为null,它会检查b是否为null,如果它们都为null,则跳过,但如果b不为null,那么它将被视为不相等。

在a不为null的所有其他情况下,则isEqual方法存在,并且世界正确。

相关内容

最新更新