如何使用内部流类型?

How to use an inner Flow type?

我有一个导出 MyComplicatedType 的生成文件,它的参数 child 是我实际想要使用的类型。生成的文件中未命名或导出内部类型。

export type MyComplicatedType = {|
  +child: $ReadOnlyArray<{|
   // Complicated type
  |}>
|};

有什么方法可以在不使用 copy/pasting 的情况下使用 child 的类型?由于生成了代码,否则我每次重建时都必须 re-copy/paste。

您可以使用 $Call 来提取它。

示例:

type TypeNeeded = $Call<
     <T>({
             +child:$ReadOnlyArray<T>
           })=>T,
     MyComplicatedType
>

检索您在 $ReadOnlyArray 中拥有的内容。

您可以在文档中查看更复杂的示例:https://flow.org/en/docs/types/utilities/#toc-call