流类型:函数的返回类型是否与回调的args相同?

时间:2019-06-12 17:02:44

标签: javascript flowtype typing

我具有以下功能–

function wrapper(callback) {
  // operation
}

我需要wrapper的返回类型与传递给callback的第一个(唯一)参数相同。例如。

wrapper(({paramA, paramB}) => {}) 
// returns { paramA: somveVal, paramB: someVal }

那有可能吗?

2 个答案:

答案 0 :(得分:1)

function wrapper<T>(callback: T => mixed): T { ...}

请注意,除非您实际上不希望它是通用的,否则该签名是无法实现的。

答案 1 :(得分:0)

如果我理解得很好,则您需要以下内容:

例如声明type CallBack

type CallBack = {|
  paramA: any,
  paramB: any,
 // Or use other type instead any.
|}

annotate 功能

const wrapper = (fn: (x: CallBack) => CallBack): CallBack => ({ paramA: 1, paramB: 2 });

流程示例: Flow Try