Обзор линтинга
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