javascript – flowjs:调用方法`join`.混合方法不能调用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – flowjs:调用方法`join`.混合方法不能调用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1523字,纯文字阅读大概需要3分钟。
内容图文
![javascript – flowjs:调用方法`join`.混合方法不能调用](/upload/InfoBanner/zyjiaocheng/699/ac29d90f78814138b1183370df96966a.jpg)
说我有一个恒定的动物,我导入
import animals from './animals
说动物不变的是:
{
hoofed:[
'horses',
'sheep',
'goats'
],
feline: [
'lions',
'tigers'
],
canine: [
'dogs',
'wolves'
]
}
假设我想为某些动物api构建一个Url查询,并编写以下代码:
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]的东西?
什么是流量检测,我该如何避免?
解决方法:
Object.values函数返回一个数组< mixed>此刻打字.所以你需要将它转换为一个字符串数组数组,如下所示.
let fq: string[][] = (Object.values(animals): any);
fq = fq
.reduce((memo, animalList) => memo + `animal:${animalList.join(' animal:')} `, '')
或者像这样使用内联强制转换:
const fq = ((Object.values(animals): any): string[][])
.reduce((memo, animalList) => memo + `animal:${animalList.join(' animal:')} `, '')
Flow目前无法支持此功能,因为Object.values函数是in stage-4作为提案.所以它还不是语言的一部分.只需时间问题,您就不需要使用强制转换来解决此问题,只要Object.values函数是EcmaScript标准的一部分,流程团队就可能正确实现它.
内容总结
以上是互联网集市为您收集整理的javascript – flowjs:调用方法`join`.混合方法不能调用全部内容,希望文章能够帮你解决javascript – flowjs:调用方法`join`.混合方法不能调用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。