Кажется, я продолжаю видеть, как undefines появляются в приложении, которое у нас есть, на которое мы ссылаемся. foo.length
Будет ли это правильным синтаксисом для проверки того, является ли переменная
Использование лодаша
if (!_.isNil(foo) && foo.length)
Или просто машинопись
// option 1
if (foo && foo.length)
// option 2
if (foo)
Стоит ли использовать lodash или это удар по производительности?
Это зависит от того, какой именно тип этой переменной. Но если foo
это string[] | null | undefined
, то вы просто проверяете на правдивость и в путь:
if (foo) {
// foo is `string[]` in this conditional scope
}
Или вы можете использовать foo?.length
и указать значение по умолчанию:
const size = foo?.length ?? 0 // length of array, if undefined use zero.
Использование lodash для такого рода вещей — это излишество.
Итак, учитывая все это, чтобы проверить, существует ли массив и не является ли он пустым, это, вероятно, ваш самый простой вариант:
if (foo && foo.length > 0)
Это необязательная цепочка и нулевой оператор объединения. И они чертовски удобны!
Я не был знаком с синтаксисом по умолчанию. Спасибо за руководство по этому поводу.