第一个片段是我正在使用的代码,下面是它抛出的错误,它发生在代码中的每个“yield select”部分,我不确定我的下一步是什么。
function* onLoadingDomainsresult() {
const pathname = yield select(getPathname);
interface Params {
hastag: string;
}
'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation. TS7057
113 |
114 | function* onLoadingDomainsresult() {
> 115 | const pathname = yield select(getPathname);
| ^
116 |
117 | interface Params {
118 | hastag: string;
5条答案
按热度按时间u91tlkcl1#
select(getPathname)
的文本类型与从yield
返回的值无关。select(getPathname)
是协同例程向其迭代上下文生成的值。由生成器的运行上下文(通过
next()
调用)注入到生成器中的值与从yield
表达式返回的类型有关。无论哪种方式,目前Typescript根本没有关于它将得到什么的元数据,因为生成器函数没有类型注解。
我猜这是一部终极传奇。
典型的Generator函数类型注解类似于...
...你得到的错误是来自Typescript必须猜测
WhatYouAccept
类型,而你的函数上没有Generator类型注解。lrpiutwd2#
我得到了同样的错误,我解决了它。
ivqmmu1c3#
在最近的typescript更新中,对生成器函数有更多的类型限制。
类型1:买入即收益
类型2:无赎回收益
**注意:**使用
any
是最快的解决方案,但正确的解决方案是为响应创建类型/接口并将其用作类型。eh57zj3b4#
您可以添加任何作为返回类型
k4aesqcs5#
我也遇到了这个问题,通过将返回值类型设置为any解决了这个问题。