#reactjs #typescript #eslint
Вопрос:
В процессе проверки неопределенного значения в глубоко вложенном объекте (эти объекты потенциально не определены в контексте асинхронных данных) я использую необязательную цепочку, чтобы смягчить это, но легко забыть о проверке, не определен ли объект.
Существует это правило Eslint, которое просто предпочитает необязательную цепочку поверх amp;amp;
s
Но мне интересно, существует ли правило, которое предписывает использование необязательной цепочки.
Редактировать: добавление большего контекста, где это полезно.
Комментарии:
1. Я заметил, что вы
typescript
отметили здесь. Я бы ожидал, что если объект набран как потенциально неопределенный, у вас будет ошибка компиляции от компилятора typescript. Разве этого недостаточно? Редактировать: причина, по которой я использовал typescript, а не изучал правила eslint, заключается в том, что это похоже на то, с чем помогает TS.2. Если бы такая вещь существовала, это заставило бы вас повсюду размещать необязательную цепочку (например
document?.querySelector(something)
). Это повредит удобочитаемости после выполнения или потребует дополнительных ресурсов для борьбы с ним.3. @Nick Да, typescript помогает в этом, но проблема связана с асинхронными данными (например: REST API), глубоко вложенные объекты не гарантированно не определены.
4. @skyboyer Вот чего я боюсь, я думал о правиле Eslint, достаточно интеллектуальном, чтобы ориентироваться только на асинхронные данные, но я не уверен, возможно ли создать что-то подобное.
5. Если свойства данных потенциально не определены, вы должны правильно ввести их, чтобы отразить это. Таким образом, вы можете полагаться на сам компилятор вместо правила lint.