Is there an elegant way to check if variable is NOT falsy but in case of 0 it passes. The issue with this way of verifying
if(var !== undefined && var !== null)
is that it’s long and doesn’t cover all cases like undecalred
or NaN
. I’m also using typescript and declare it as optional number.
Advertisement
Answer
You can do exactly what your first sentence asks:
if (!x && x !== 0)
means literally “if x is falsy and x is not 0”.
Also the ==
and !=
comparison operators explicitly consider null
and undefined
to be equal, so
if (x != null)
is true
for both null
and undefined
. (That’s !=
, not !==
.)