null?.length == 0 ist nicht true sondern false!
Will man also prüfen, ob ein Array null oder leer ist, muss man (anArrayOrNull ?? []).length == 0 testen:
const anArrayOrNull = null;
if ((anArrayOrNull ?? []).length == 0)
console.log('is empty');
else
console.log('has elements');
... oder -- kürzer -- nur auf anArrayOrNull?.length (ohne == oder >) prüfen, da 0 == true tatsächlich false ist, 1 == true, 2 == true, 3 == true usw. hingegen alle true sind:
const anArrayOrNull = null;
if (anArrayOrNull?.length)
console.log('has elements');
else
console.log('is empty');
Hinweis: -1 == true ist false; alles größer 0 ist true, alles kleiner/gleich 0 ist false.
#javascript