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

IT技术 javascript reactjs object types
2021-03-23 21:38:17

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

export type Author = {|
  id: string,
  name: string,
  avatarUrl: string,
  url: string,
|}

有几种这样的导出类型{|...|},对象括号中带有双管,尽管我进行了研究,但我找不到任何可以解释它的作用的东西。我认为这是因为有多个 Authors 组合到最终对象中(重新:以下代码)并且双管道防止了某种冲突。

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

export const authors: Author[] = [
  jake, BMO, finn, princess,
];
1个回答

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

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

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

基本上,它不会允许定义的任何props之外的任何props,并且如果你添加,比如...age: 40到一个Author对象,应该会抱怨