Подавление ошибок
Flow сообщает о многих разных ошибках для распространённых ошибок программирования, но не все шаблоны JavaScript могут быть поняты Flow. Если вы уверены, что ваш код правильный, и Flow сообщает слишком много ошибок, вы можете подавить ошибку, чтобы Flow её не сообщал.
Что такое подавление?
Подавление — это специальный вид комментария, который можно разместить в строке перед ошибкой типа. Он сообщает Flow, что не следует сообщать об этой ошибке при проверке вашего кода. Комментарии подавления выглядят следующим образом:
// <SUPPRESSOR>[<CODE>] extra text
Подавитель может быть одним из следующих:
-
$FlowFixMe: для ошибок типа, которые вы планируете исправить позже -
$FlowIssue: для ошибки типа, которую, как вы предполагаете, является проблемой с Flow -
$FlowExpectedError: для места, где вы ожидаете, что Flow выдаст ошибку типа (например, при выполнении некорректного приведения типов). -
$FlowIgnore: для мест, где вы хотите, чтобы Flow игнорировал ваш код
Обратите внимание, что все подавители ведут себя одинаково; мы просто рекомендуем использовать их, как описано здесь, для собственного удобства.
Часть <CODE> подавления является необязательной, но при включении указывает, какой код ошибки затрагивает подавление.
Некоторые примеры комментариев подавления:
// $FlowFixMe
// $FlowIssue[incompatible-type]
/* $FlowIgnore[prop-missing] some other text here */
/* $FlowFixMe[incompatible-cast] this
is a multi-line
comment */
{ /* $FlowIssue this is how you suppress errors inside JSX */ } Для того, чтобы быть корректным комментарием подавления, должны быть соблюдены некоторые условия:
- Текст не может предшествовать подавителю или находиться между подавителем и кодом. Например:
// some text then $FlowFixMeне является корректным подавлением, так же как и// $FlowIssue some text [incompatible-type]или ` //$FlowFixMe [prop-missing]` (обратите внимание на пробел здесь!). - Подавления должны быть в строке непосредственно перед ошибкой, которую они подавляют, иначе они не будут применены.
Уточнение подавлений с помощью кодов ошибок
Подавляемые ошибки Flow также будут иметь связанный с ними код ошибки (после версии 0.127). Этот код кратко описывает тип проблемы, о которой сообщает ошибка, и различается для разных типов ошибок.
Для предотвращения подавления разных типов ошибок в одной строке (по умолчанию подавления без кодов подавляют все ошибки в следующей строке), вы можете добавить код ошибки в своё подавление. Например: // $FlowFixMe[incompatible-type] будет подавлять только ошибки с кодом incompatible-type. Таким образом:
//$FlowFixMe[incompatible-type] (3 : string);
не будет сообщать об ошибках, но
//$FlowFixMe[prop-missing] (3 : string);
по-прежнему будет сообщать об несовместимости типов.
Чтобы подавить несколько кодов ошибок в одной строке, можно размещать комментарии подавления друг за другом, и они все будут применяться к первой строке без комментариев, как показано ниже:
let y : number | { x : number } = 1;
// $FlowFixMe[incompatible-type]
// $FlowFixMe[prop-missing]
(y.x : string);
Это подавит обе две ошибки в этой строке.
© 2013–present Facebook Inc.
Licensed under the MIT License.
https://flow.org/en/docs/errors