TypeScript和Iterator:输入&#39; IterableIterator <t>&#39;不是数组类型

时间:2018-03-11 09:59:22

标签: typescript

当我在TypeScript上使用yield* expression时,它总是会出错。

  

输入&#39; IterableIterator&#39;不是数组类型。

如何在不使用any的情况下正确设置类型以避免错误?

function* g1(): IterableIterator<number> {
  yield 2;
  yield 3;
  yield 4;
}

function* g2(): IterableIterator<number> {
  yield 1;
  // ERROR: Type 'IterableIterator<number>' is not an array type.
  yield* g1();
  yield 5;
}

const iterator = g2();

2 个答案:

答案 0 :(得分:30)

如果你的目标是es5,你需要在tsconfig中明确启用低级迭代:

{{1}}

答案 1 :(得分:-3)

<dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
        <version>2.5.2</version>
        <scope>provided</scope>
</dependency>

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>