【发布时间】:2019-10-22 10:35:19
【问题描述】:
我有一个这样的类型:
type Cool = {
[key: string]: number
}
现在,假设我有一个该类型的对象:
let my: Cool = {
"asdf": 1,
"jkl": 2
}
当我运行Object.entries(my) 时,我得到[["asdf", 1], ["jkl", 2]]。这似乎很正常。但是,我想将每个键组合成一个字符串,如下所示:
let mystring = "";
Object.entries(my).forEach(entry => {
mystring = entry[1] + mystring;
});
我希望mystring 等于“jklasdf”,并且确实如此。但是,我在mystring = ... 行上收到了一个流错误。错误状态:
无法将
Object.entries(...)[0][1]转换为字符串,因为混合 [1] 与字符串不兼容
关于如何解决这个问题的任何想法?谢谢!
【问题讨论】:
-
奇怪,当我在flow.org/try输入你的代码时,它说没有错误。
-
根据 Flow 的核心类型,
Object.entries的结果是Array<[string, mixed]>,因此访问entry[0]应该产生string(reference)。也许您正在尝试访问entry[1](类型为mixed)? -
谢谢@user11307804!事实上,我正在访问 entry[1]!
-
@RyanZ,如果您仍然遇到此问题,请参阅 github.com/facebook/flow/issues/2221。
标签: javascript flowtype