title: What does {| ... |} mean in javascript?
body: <p>Reading through a javascript codebase, I encounter a block of code that looks like</p>
  
  <pre><code>export type RouteReducerProps = {|
    error?: Error,
    isResolving: boolean,
    isResolved: boolean,
    hasFailed: boolean,
  |};
  </code></pre>
  
  <p>This looks like a javascript object literal definition, but I've never seen a javascript object literal with vertical bars inside the curly braces. What do those do?</p>