首页 > 解决方案 > 如果条件返回假,如果一个数字存在,但为 0

问题描述

我有一个带有可选字段的类startDateHour

export class Test {
  startDateHour?: number;

  // more fields, constructor etc.
}

我想做点什么,如果startDateHour存在的话:

if (test.startDateHour) {
  //do something
}

问题是,当为 0 时,此检查无法按预期工作。startDateHour如果它的 0 仍然存在,我想执行代码,但if (startDateHour)在这种情况下返回 false。

当然我可以做类似的事情:

if (test.startDateHour || test.startDateHour === 0) {
  // do something
}

但是有没有更好的方法,比如一个同时做上述事情的检查?

标签: angulartypescript

解决方案


0 是假的。但是最新的 typescript 版本提供了另一个称为 Nullish Coalescing 的运算符。如果您可能想要使用它,则取决于您想要在其中执行的操作。

在这里阅读它,例如:https ://dev.to/obinnaogbonnajoseph/optional-chaining-and-nullish-coalescing-typescript-3-7-5899


推荐阅读