@GunAlv

Является ли пустой объект в стейте вместо null плохой практикой?

Например, в контейнерной компоненте можно указать стейт как
state = {
   someValue: {} // null
}


Какая разница в подходах? Если я установлю пустой объект, то смогу использовать его поля без необходимости проверки существования оных: this.state.someValue.test. В случае null будет закономерная ошибка
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
Aleksandr-JS-Developer
@Aleksandr-JS-Developer
Бери и делай
На производительность не влияет. Влияет на того, кто потом (возможно и вы сами) потом будет ловить баги.
undefined - означает, что переменная не определена.
null - означает "пусто".
Соответственно, в консоли, когда я увижу undefined, то я пойду первым делом проверять входные параметры компонента/функции/и т. д.
Если я увижу null, то пойду первым делом проверять переопределения/записи.

Если оставить пустой объект, то тут немного сложнее.
Если вам надо СНАЧАЛА получить данные, а лишь потом обращаться к объекту, то нельзя будет проверить на пустотой объект, потому, что оператор if сравнивает не поля и методы, а проверяет, ссылаются ли две переменные на один и тот-же объект.
const obj = {};

const obj2 = {};

console.log( obj === obj2 ) // false

if( obj === {} ) // false


Лично я, обычно задаю значение по-умолчанию null, если нельзя задать другое значение. Например, когда есть функция, возвращающая случайное число между max и min, то удобно входящий параметр min сделать 0 по-умолчанию.
Но если у вас не происходит особой логики, или поле подвязано реактивно к интерфейсу, то пустой объект тоже норм.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Fragster
@Fragster
помогло? отметь решением!
Является ли пустой объект в стейте вместо null плохой практикой?

Чаще да. Вместо null еще undefined можно использовать.

А для свойств есть Optional_chaining
Ответ написан
kirbi1996
@kirbi1996
Заюзай typescript, он тебе подскажет где хорошая а где плохая практика
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы