Функция является частью стандарта EcmaScript, и команда потока, вероятно, выполнит его правильно.
м, у меня есть постоянные животные, которых я импортирую с
import animals from './animals
Скажем, постоянная животных:
{
hoofed:[
'horses',
'sheep',
'goats'
],
feline: [
'lions',
'tigers'
],
canine: [
'dogs',
'wolves'
]
}
Скажем, что я хочу построить URL-запрос для некоторых животных API и написать следующий код:
const fq = Object.values(animals).reduce((memo, animalList) => memo + `animal:${animalList.join(' animal:')} `, '')
Теперь этот код генерирует строку животных, разделенную словом «животное» и пробелом, которая затем кодируется в URL и правильно соответствует целевой поверхности API.
FlowJS, однако, отклоняет этот код с помощью:
13: const fq = Object.values(animals).reduce((memo, animalList) => memo + `animal:${animalList.join(' animal:')} `, '')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `join`. Method cannot be called on
13: const fq = Object.values(animals).reduce((memo, animalList) => memo + `animal:${animalList.join(' animal:')} `, '')
^^^^^^^^ mixed
Мой вопрос: почему? Массив довольно четко не перепутан, это константа и Object.valuesдолжен возвращать что-то типа [string]?
Что такое обнаружение потока и как его избежать?