什么是{| ... |}在javascript中意味着什么?

And*_*ell 9 javascript syntax

通过javascript代码库阅读,我遇到了一个看起来像的代码块

export type RouteReducerProps = {|
  error?: Error,
  isResolving: boolean,
  isResolved: boolean,
  hasFailed: boolean,
|};
Run Code Online (Sandbox Code Playgroud)

这看起来像一个javascript对象文字定义,但我从来没有见过一个javascript对象文字,在花括号内有垂直条.这些怎么办?

And*_*ell 9

此语法特定于Flow,它是javascript的静态类型检查器。它定义了一个Exact Object Type,这是一个只有几个指定键才有效的对象。在上面的例子中,只有按键'error?''isResolving''isResolved',和'hasFailed'可在物体上所定义RouteReducerProps