React中对象中的双管道的目的是什么

Chi*_*Zen 3 javascript types object reactjs

我遇到了一些React DND的示例,其中一个是以下代码:

export type Author = {|
  id: string,
  name: string,
  avatarUrl: string,
  url: string,
|}
Run Code Online (Sandbox Code Playgroud)

有几种这样的导出类型,{|...|}在对象括号中带有双管道,尽管进行了研究,但找不到能解释其作用的内容。我认为这是由于有多个Authors组合到最终对象中(例如以下代码),并且双管道防止了某些冲突。

const princess: Author = {
  id: '4',
  name: 'Princess bubblegum',
  url: '',
  avatarUrl: '',
};

export const authors: Author[] = [
  jake, BMO, finn, princess,
];
Run Code Online (Sandbox Code Playgroud)

Dim*_*off 5

这是一个流类型精确对象类型注释。

https://flow.org/zh-CN/docs/types/objects/#toc-exact-object-types

有时禁用此行为并仅允许一组特定的属性很有用。为此,Flow支持“精确”对象类型。

基本上,它将不允许已定义道具之外的任何道具,如果您age: 40向Author对象添加... ,则应该抱怨。