【发布时间】:2017-10-29 16:59:24
【问题描述】:
假设我有一个恒定的动物,我用
导入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] 类型的东西?
什么是流量检测,如何避免?
【问题讨论】:
标签: javascript types casting ecmascript-6 flowtype