gpt4 book ai didi

javascript - 'yield' 表达式隐式生成 'any' 类型,因为其包含的生成器缺少返回类型注释

转载 作者:行者123 更新时间:2023-12-03 18:20:33 25 4
gpt4 key购买 nike

第一个片段是我正在使用的代码,下面是它抛出的错误,它发生在代码中的每个“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;

最佳答案

select(getPathname) 的字面量类型与您从 yield 返回的值无关. select(getPathname)是您的协程对其迭代上下文产生的值。
通过运行上下文(通过 next() 调用)注入(inject)到生成器中的值与从 yield 返回的类型有关。表达。
无论哪种方式,当前 Typescript 都没有关于它将获得什么的元数据,因为您的生成器函数没有类型注释。
我猜这是redux-saga。
典型的生成器函数类型注释类似于...

type WhatYouYield="foo"
type WhatYouReturn="bar"
type WhatYouAccept="baz"

function* myfun(): Generator<
WhatYouYield,
WhatYouReturn,
WhatYouAccept
> {
const myYield = "foo" //type of myYield is WhatYouYield
const myAccepted = yield myYield; //type of myAccepted is WhatYouAccept
return "baz" //type of this value is WhatYouReturn
}
...而您得到的错误来自 Typescript 必须猜测 WhatYouAccept在您的函数上输入没有生成器类型注释的类型。

关于javascript - 'yield' 表达式隐式生成 'any' 类型,因为其包含的生成器缺少返回类型注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66922379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com