使用生成器函数时打字稿错误

Typescript error when using generator function

如何解决使用生成器函数时的打字错误?

只需自己添加 return 类型:

function* flatten(array: string[], depth: number): Generator<string, void, void> {
   ...
}

Generator 是声明为 Generator<T, TReturn, TNext> 的泛型类型,其中 T 代表在 yield 上从生成器吐出的值的类型, TReturn 代表生成器 return 带有 return 语句的值类型,TNext 代表 generator.next(value: TNext) 接受的值类型。

您的生成器函数吐出字符串,return什么也没有,并且从不使用生成器通过 next 接受的值 – 因此它的类型应该是 Generator<string, void, void>.