function* 声明(由 function 关键字后跟一个星号)定义了一个生成器函数,该函数返回一个 Generator 对象。 [参考]
但如果我写:
const genFn: GeneratorFunction = function* () {};
我理解为:
Property '[Symbol.toStringTag]' is missing in type '() => Generator<never, void, unknown>' but required in type 'GeneratorFunction'.ts(2741)
lib.es2015.symbol.wellknown.d.ts(161, 14): '[Symbol.toStringTag]' is declared here.
在TypeScript中,GeneratorFunction接口代表什么?此外,是否有更适合我捕获生成器函数的内置接口?
GeneratorConstructor
类型。它是一个不同的类型。然而,正如错误所指示的那样,TypeScript 已经正确地推断出了生成器的类型,您的注释只是在与语言争论。把它去掉吧。换句话说,您的函数具有错误消息中显示的类型() => Generator<never, void, unknown>
,但您不需要将其写出来。 - Aluan HaddadGeneratorFunctionConstructor
。这是你所指的吗?当然,我的实际代码并不像那个例子。我正在使用一个期望GeneratorFunction
类型参数的库,但我无法构造出满足该类型的对象,这让我对这种接口的目的感到好奇。 - villasvGeneratorFunctionConstructor
使用。 - villasv