代码之家  ›  专栏  ›  技术社区  ›  JD.

如何用flow检索函数参数类型

  •  2
  • JD.  · 技术社区  · 6 年前

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

    例如,如果我有:

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

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

    只有一些东西 typeof 而不是函数参数。

    谢谢!

    1 回复  |  直到 6 年前
        1
  •  3
  •   frontendgirl    6 年前

    我认为实现这一点的方法之一是为函数中的参数创建一个单独的类型,如下所示:

    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 .... ;
    

    即使流实用程序类型有一个帮助器,允许为函数调用的结果获取类型( check docs for $Call ),我找不到任何将返回函数参数类型的实用程序类型,所以看起来为参数创建单独的类型是正确的。