扩展Array <t>导致Flow InferError-数组未被识别为接口

时间:2019-04-15 17:21:53

标签: flowtype

我正在尝试扩展Array接口,但遇到以下Flow InferError: “无法实现'Array',因为它不是接口”

这是一个导致错误的非常简单的示例:

export interface MyIArray<T> extends Array<T> {
}

function foo() {
    const list: MyIArray<any> = [];
}

在此示例中,使用const列表声明使Flow感到沮丧。

Try

1 个答案:

答案 0 :(得分:0)

抱歉,这应该是评论,但“尝试流程”链接太长:

看起来像IObservableArray的错误的mobx类型。我从链接的文件中复制了相关类型,并尝试将数组变量声明为IObservableArray,而Flow抱怨(Try Flow)。我不确定是否存在直接键入和扩展Array的有效方法。如果可以的话,如果您将MyIArrayArray组合在一起,则键入MyIArray会更容易-在MyIArray实例上设置一个原始数组的属性,然后向其中添加其他属性/方法SELECT a.pid, b.t1q, c.t2q, d.t3q FROM (SELECT DISTINCT(pid) FROM table1 AS pid) a JOIN (SELECT pid, SUM(quantity) AS t1q FROM table1 WHERE to_id = 10 GROUP BY pid) b ON a.pid = b.pid JOIN (SELECT pid, SUM(quantity) AS t2q FROM table1 WHERE from_id = 10 GROUP BY pid) c ON a.pid = b.pid JOIN (SELECT pid, SUM(quantity) AS t3q FROM table3 WHERE some_id = 10 GROUP BY pid) d ON a.pid = d.pid