Spec-Zone.ru › Flow

Обзор линтинга

Flow включает инфраструктуру линтинга, которая помогает находить не только ошибки типов. Эта инфраструктура обладает широкими возможностями настройки, чтобы показывать нужную вам информацию и скрывать ненужную.

Настройка правил линтинга в .flowconfig​

Настройки линтинга можно указать в разделе [lints] файла .flowconfig в виде списка пар rule=severity. Эти настройки применяются ко всему проекту.

[lints]
all=warn
untyped-type-import=error
sketchy-null-bool=off

Настройка правил линтинга через CLI​

Настройки линтинга можно указать с помощью флага --lints команды сервера Flow в виде списка пар rule=severity, разделённых запятыми. Эти настройки применяются ко всему проекту.

flow start --lints "all=warn, untyped-type-import=error, sketchy-null-bool=off"

Настройка правил линтинга с помощью комментариев​

Настройки линтинга можно указать внутри файла с помощью комментариев flowlint. Эти настройки применяются к области файла, одной строке или её части. Подробнее см. в разделе Комментарии Flowlint.

// flowlint sketchy-null:error
const x: ?number = 0;


if (x) {} // Error


// flowlint-next-line sketchy-null:off
if (x) {} // No Error


if (x) {} /* flowlint-line sketchy-null:off */ // No Error


// flowlint sketchy-null:off
if (x) {} // No Error
if (x) {} // No Error

Приоритет настроек линтинга​

Настройки линтинга в комментариях flowlint имеют наивысший приоритет, за ними следуют правила линтинга во флаге --lints, а затем — .flowconfig. Такой порядок позволяет использовать комментарии flowlint для точечной настройки линтинга, флаг --lints — для проверки новых настроек линтинга, а .flowconfig — для стабильных настроек всего проекта.

Внутри флага --lints и .flowconfig правила, расположенные ниже, имеют приоритет над правилами выше. Это позволяет писать, например, следующее:

[lints]
# warn on all sketchy-null checks
sketchy-null=warn
# ... except for booleans
sketchy-null-bool=off

Парсер настроек линтинга достаточно интеллектуален и предупредит вас, если вы зададите избыточное правило, правило, которое будет полностью переопределено, или неиспользуемое подавление flowlint. Это поможет избежать большинства случайных ошибок в настройках правил линтинга.

Уровни серьёзности и их значения​

off: Правило линтинга игнорируется. Отключение правила с помощью off похоже на подавление ошибки типа комментарием-подавлением, но даёт гораздо более точный контроль.

warn: Предупреждения — это уровень серьёзности, введённый инфраструктурой линтинга. Они отличаются от ошибок в нескольких аспектах:

  • Предупреждения не влияют на код завершения Flow. Если Flow обнаружит предупреждения, но не найдёт ошибок, он всё равно вернёт 0.
  • По умолчанию предупреждения не отображаются в CLI, чтобы не перегружать вывод. Предупреждения CLI можно включить, передав флаг --include-warnings серверу Flow или клиенту Flow либо задав include_warnings=true в .flowconfig. Это удобно для небольших проектов, в которых нужно сразу видеть все предупреждения проекта.

error: Правила линтинга с уровнем серьёзности error обрабатываются так же, как любые другие ошибки Flow.

См. также​

  • .flowconfig [lints] — настройка серьёзности правил линтинга в .flowconfig
  • Строгий режим Flow — включение более строгой проверки типов с помощью @flow strict
  • ESLint — использование ESLint вместе с Flow для дополнительного линтинга

© 2013–present Facebook Inc.
Licensed under the MIT License.
https://flow.org/en/docs/linting

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API