flowtype - 扩展数组导致 Flow InferError - 数组未被识别为接口
问题描述
我正在尝试扩展 Array 接口,但遇到以下 Flow InferError:“无法实现 'Array',因为它不是接口”
这是一个导致错误的非常简单的示例:
export interface MyIArray<T> extends Array<T> {
}
function foo() {
const list: MyIArray<any> = [];
}
在此示例中,Flow 对 const 列表声明感到不满。
试试。
解决方案
抱歉,这应该是一条评论,但 Try Flow 链接太长:
它看起来像IObservableArray
一个 bug 的 mobx 类型。我从您链接的文件中复制了相关类型,并尝试将数组变量声明为IObservableArray
并且 Flow 抱怨(Try Flow)。我不确定是否有Array
直接输入和扩展的有效方法。如果可以的话,MyIArray
如果你用Array
--setting 一个普通MyIArray
数组实例上的属性,然后将其他属性/方法添加到MyIArray
.
推荐阅读
- rust - 函数指针的生命周期
- node.js - 按引用属性(不是 id)查找文档
- vue.js - 如何使用 vuejs 制作可安装的 PWA?
- arrays - uint256 值数组的 Solidity 硬编码初始值失败
- javascript - 如何在反应中控制滚动
- typescript - 基于数组参数的动态返回类型
- python - 根据条件交换索引值
- mongodb - 不是停止字符的 MongoDB 全文索引字符(标记化分隔符)
- javascript - 如何将 JavaScript 变量传递给后续函数?
- javascript - 向 JavaScript Firefox 扩展添加功能时出现问题?