facebook / facebook/flow

Can't get iterator from iterable object

Open
#1,163 12 comments 15 reactions 0 assignees View on GitHub
ES2015+
Dominant language
Rust
Stars
22.3k
Forks
1.9k
PR merge metrics
No merged PRs in 30d

Description

When I try to get `iterator` from `iterable` object using [Symbol.iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator)

``` ts
/* @flow */

'use strict';

const a = [1, 2, 3];
for (const value of a[Symbol.iterator]()) {
console.log(value);
}
```

`flow check` produces error:

```
test.js:6
6: for (const value of a[Symbol.iterator]()) {
^^^^^^^^^^^^^^^^^^ access of computed property/element. Element cannot be accessed with
6: for (const value of a[Symbol.iterator]()) {
^^^^^^^^^^^^^^^ string

```

I have the same problem with `Iterable` interface:

``` ts
/* @flow */

'use strict';

const iterable: Iterable = [1, 2, 3];
const iter = iterable[Symbol.iterator];
```

```
$ flow check
test.js:6
6: const iter = iterable[Symbol.iterator];
^^^^^^^^^^^^^^^^^^^^^^^^^ access of computed property/element. Indexable signature not found in
6: const iter = iterable[Symbol.iterator];
^^^^^^^^ $Iterable
```

```
$ flow version
Flow, a static type checker for JavaScript, version 0.19.1
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.