Flow 的 libdefs 中的 $Export 变量是什么意思?
What is the meaning of $Export variable in Flow's libdefs?
我用的是流式
我在一些 libdefs 中遇到了变量 $Export
。我不知道它是什么以及记录在何处。
对我来说它似乎类似于Utility Types,但是那里没有描述$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">;
}
看着this Github thread它们似乎是内部方法
定义好像在这里:
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 **)
我用的是流式
我在一些 libdefs 中遇到了变量 $Export
。我不知道它是什么以及记录在何处。
对我来说它似乎类似于Utility Types,但是那里没有描述$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">;
}
看着this Github thread它们似乎是内部方法
定义好像在这里:
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 **)