Biome 2.6.7 добавил проверки fetch, Promise.finally и типов TypeScript

Biome 2.6.7 добавил проверки fetch, Promise.finally и типов TypeScript
Содержание статьи

11 ноября вышел Biome 2.6.7, обновление инструмента для форматирования и проверки кода. В нём появились новые правила для JavaScript, TypeScript и CSS. Mentoring.digital разбирает проверки, которые помогают заметить ошибки ещё до запуска приложения.

Запросы и асинхронная очистка

Правило noInvalidFetchOptions сообщает о теле запроса в fetch() или new Request(), если выбран метод GET или HEAD. Такой вызов приводит к TypeError во время выполнения. Если метод не указан, используется GET, поэтому отсутствие явного имени метода не делает сочетание допустимым.

Другая проверка, noAsyncPromiseFinally, отмечает асинхронную функцию внутри Promise.finally(). Если очистка завершается ошибкой, она заменяет исходный результат или ошибку промиса. Предупреждение полезно там, где важно сохранить причину первоначального сбоя. Само по себе оно не означает, что любая асинхронная очистка неверна: решение зависит от ожидаемого поведения приложения.

Типы и сложность CSS

noDuplicateTypeConstituents находит повторяющиеся элементы объединений и пересечений типов, а также лишний undefined у необязательного параметра. Проверка noRedundantTypeConstituents ищет элементы, не влияющие на итоговый тип, например строковый литерал рядом с общим типом string.

Для стилей добавлено noExcessiveSelectorComplexity. Правило позволяет ограничивать количество частей селектора и запрещать выбранные конструкции. Без настроенных опций оно ничего не делает. Команде нужно сначала определить понятные ограничения, а затем оценить их на существующих стилях.

Как вводить новые правила

Перечисленные проверки находятся в группе nursery, то есть пока считаются экспериментальными. Не стоит автоматически превращать весь новый набор предупреждений в блокирующее условие CI. Начните с отдельных правил, прочитайте диагностику и посмотрите, какие изменения действительно нужны проекту.

Перед автоматическими исправлениями сохраните изменения в системе контроля версий и изучите предлагаемый diff. Если требуется разобраться в поведении промисов и сетевых запросов, это можно сделать с наставником по JavaScript на примерах своего приложения.

Похожие статьи по данной теме