使用生成器函数时打字稿错误
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>
.
如何解决使用生成器函数时的打字错误?
只需自己添加 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>
.