【发布时间】:2018-12-19 04:13:00
【问题描述】:
我有一个函数foo,它接受两个数组的联合,它唯一做的就是循环遍历数组,但是这样我得到了流类型错误,数组中缺少一些属性。难道不能这样做吗?我根本没有使用任何属性。它们都是数组,所以 flow 应该知道它们是可迭代的。
A live example in the flow editor
type Handle = {|
+articleId: string,
+type: 'handle',
+accessories: Array<string>,
+positionInfo: string,
|};
type Leg = {|
+articleId: string,
+type: 'leg',
|};
type Entity = Handle | Leg;
function foo(entities: Array<Handle> | Array<Leg>) {
entities.forEach(() => {})
}
【问题讨论】:
-
检查属性是否可用。但是当你使用它时,它会遍历数组的每个实体,这会产生错误。
-
但我根本没有使用任何属性?
-
但 entity.forEach(() => {}) 尝试访问两个数组中的相同属性。
-
看起来像一个错误..
-
但它根本没有访问任何属性@UllasHunka 如果 Array 类型是一个接口,那么所有作为数组的东西都应该可以交互,对吧?
标签: javascript flowtype