抑制有关Symbol.iterator的流错误

时间:2019-05-28 11:55:08

标签: javascript iterator flowtype

由于对Symbol的Flow支持不佳,以下正确的代码会产生Flow错误(0.93版):

const iterator: Iterator<Item> = items[Symbol.iterator]();
string [1] is not an array index.

     /private/tmp/flow/flowlib_30af1970/core.js
 [1] 90│   static iterator: string; // polyfill '@@iterator'

我可以看到两种抑制它的方法,我都不满意。我应该使用其中一种(如果是,哪一种),还是有更好的方法?如果可能,请说明原因。

添加一个FixMe注释:

// $FlowFixMe
const iterator: Iterator<Item> = items[Symbol.iterator]();

或将数组类型转换为any

const iterator: Iterator<Item> = (items: any)[Symbol.iterator]();

两年前提交给How do I suppress flow symbol errors?的答案也没有其他选择。

(我正在寻找消除迭代器并使用简单循环的方法,但这很棘手,因此出于这个问题的目的,请忽略这种可能性)

0 个答案:

没有答案