Это функция потока, называемая Функция предиката .
Короче говоря, это обозначает функцию, выполняющую уточнение типа.
В конкретном примере это означает, что Flow знает, что когда значение проверяется положительно с использованием isObject
, оно будет иметь тип object
.
Flow имеет несколько встроенных проверок для уточнения типа, включая такие вещи, как obj !== null
и typeof obj === 'object'
, но если вы извлечете его в общую функцию isObject
, возвращающую boolean
, Flow не будет доверять, что Функция выполняет уточнение типа, если вы не пометите его как %checks
.
Обратите внимание, что TypeScript имеет аналогичную функцию, называемую Определяемые пользователем гвардии типов .