Существует ли правило Eslint, которое предписывает использование необязательной цепочки или

#reactjs #typescript #eslint

Вопрос:

В процессе проверки неопределенного значения в глубоко вложенном объекте (эти объекты потенциально не определены в контексте асинхронных данных) я использую необязательную цепочку, чтобы смягчить это, но легко забыть о проверке, не определен ли объект.

Существует это правило Eslint, которое просто предпочитает необязательную цепочку поверх amp;amp; s

https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-optional-chain.md

Но мне интересно, существует ли правило, которое предписывает использование необязательной цепочки.

Редактировать: добавление большего контекста, где это полезно.

Комментарии:

1. Я заметил, что вы typescript отметили здесь. Я бы ожидал, что если объект набран как потенциально неопределенный, у вас будет ошибка компиляции от компилятора typescript. Разве этого недостаточно? Редактировать: причина, по которой я использовал typescript, а не изучал правила eslint, заключается в том, что это похоже на то, с чем помогает TS.

2. Если бы такая вещь существовала, это заставило бы вас повсюду размещать необязательную цепочку (например document?.querySelector(something) ). Это повредит удобочитаемости после выполнения или потребует дополнительных ресурсов для борьбы с ним.

3. @Nick Да, typescript помогает в этом, но проблема связана с асинхронными данными (например: REST API), глубоко вложенные объекты не гарантированно не определены.

4. @skyboyer Вот чего я боюсь, я думал о правиле Eslint, достаточно интеллектуальном, чтобы ориентироваться только на асинхронные данные, но я не уверен, возможно ли создать что-то подобное.

5. Если свойства данных потенциально не определены, вы должны правильно ввести их, чтобы отразить это. Таким образом, вы можете полагаться на сам компилятор вместо правила lint.