Что означает переменная $ Export в libdefs от Flow? - PullRequest
2 голосов
/ 02 апреля 2019

Я использую тип потока.

Я встретил переменную $Export в некоторых libdefs .Я понятия не имею, что это такое и где это задокументировано.

Для меня это похоже на Типы утилит , но проблема, которую $Export там не описана.Может ли какой-либо орган объяснить это и откуда он взялся?

declare module "@material-ui/core/AppBar/AppBar" {
  import type {ComponentType, Node} from "react";

  declare type Color = "inherit" | "primary" | "secondary" | "default";
  declare type Position = "fixed" | "absolute" | "sticky" | "static" | "relative";

  declare module.exports: ComponentType<{
    children?: Node,
    className?: string,
    classes?: Object,
    color?: Color,
    position?: Position
  }>;
}

declare module "@material-ui/core/AppBar" {
  declare module.exports: $Exports<"@material-ui/core/AppBar/AppBar">;
}

1 Ответ

2 голосов
/ 02 апреля 2019

Глядя на этот поток Github они кажутся внутренними методами

Определение, кажется, здесь:

https://github.com/facebook/flow/blob/master/src/typing/type_annotation.ml#L491

где есть этот комментарий:

(*  $Exports<'M'> is the type of the exports of module 'M'

Так что это в основном загрузчик модулей для всех намерений и целей, пока не появится элемент в списке TODO

 (** TODO: use `import typeof` instead when that lands **)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...