gpt4 book ai didi

flowtype - 方法 `U` 调用的类型参数 `then` 。缺少注释

转载 作者:行者123 更新时间:2023-12-04 02:18:16 26 4
gpt4 key购买 nike

我有一个对象,其中可能包含这样声明的 promise 属性:

type PromiseAction = {
+type: string,
promise: ?Promise<any>,
};
action函数的参数被声明为 PromiseAction 类型:
(action: PromiseAction) =>

后来我检查是否收到 action对象确实有 promise属性(property)和如果 action.promise有一个 then :
if (action.promise && typeof action.promise.then === 'function') {

如果是这样,那么我会卡在 promise 链上:
return promise.then(

此时我收到错误:“方法调用的类型参数 U then。缺少注释”

我可以在 source for flow 中看到 then Promise 的属性有一个 U参数,我假设,是被要求的那个。

怎么能提供那个 U注释如果我只有一个参数 Promise<+R>在类型声明中?

最佳答案

您不需要定义 U 的值。 .

您链接到的流源本质上是指“由 then 返回的 promise 履行的值与处理程序的返回值或这些处理程序返回的 promise 的履行值相同。”这听起来令人困惑(因为 Promise 可能非常令人困惑),但最重要的是它不是您“填写”的内容。它创建了 then 类型之间的关系。 onFulfill的返回值和返回值的类型和 onReject传递给 then .

你得到的错误意味着 Flow 无法弄清楚这种关系是什么,因为它没有足够的信息。注释 then回调类型:
return promise.then((a:string)=>...)
这将修复错误,或者至少消除 U 的歧义。足以给你一个更具体的错误。

关于flowtype - 方法 `U` 调用的类型参数 `then` 。缺少注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46711826/

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