如何从流程中的函数中提取参数类型?
例如,如果我有:
export const myFunc = (p1: {a: boolean, b: string}, p2: boolean) => [a, b];
在一个文件中,第二个文件如何导入myFunc
并提取并使用p1
类型而不执行myFunc
?
typeof
的行中有一些东西,只是函数参数。
谢谢!
答案 0 :(得分:3)
我认为完成此操作的方法之一是为函数中的参数创建单独的类型,如下所示:
export type myFuncP1Type = {a: boolean, b: string};
export type myFuncP2Type = boolean;
export const myFunc = (p1: myFuncP1Type, p2: myFuncP2Type) => [a, b];
可以将类型导出为函数和变量。在需要的参数类型适当的地方,将需要导入myFuncP1Type
和myFuncP2Type
,如下所示:
import {type myFuncP1Type, type myFuncP2Type} from .... ;
即使flow实用程序类型具有一个帮助程序,该帮助程序将允许获取函数调用结果的类型(check docs for $Call),但我找不到任何可以返回函数参数类型的实用程序类型,因此请看就像为参数创建单独的类型一样。