如何使用流程检索函数参数类型

时间:2018-07-31 23:38:06

标签: javascript flowtype

如何从流程中的函数中提取参数类型?

例如,如果我有:

export const myFunc = (p1: {a: boolean, b: string}, p2: boolean) => [a, b];

在一个文件中,第二个文件如何导入myFunc并提取并使用p1类型而不执行myFunc

typeof的行中有一些东西,只是函数参数。

谢谢!

1 个答案:

答案 0 :(得分:3)

我认为完成此操作的方法之一是为函数中的参数创建单独的类型,如下所示:

export type myFuncP1Type = {a: boolean, b: string};
export type myFuncP2Type = boolean;
export const myFunc = (p1: myFuncP1Type, p2: myFuncP2Type) => [a, b];

可以将类型导出为函数和变量。在需要的参数类型适当的地方,将需要导入myFuncP1TypemyFuncP2Type,如下所示:

import {type myFuncP1Type, type myFuncP2Type} from .... ;

即使flow实用程序类型具有一个帮助程序,该帮助程序将允许获取函数调用结果的类型(check docs for $Call),但我找不到任何可以返回函数参数类型的实用程序类型,因此请看就像为参数创建单独的类型一样。