代码之家  ›  专栏  ›  技术社区  ›  Yana Agun Siswanto

这种参数“consttypes=({editor}:{editor:editor})=>{}”是什么意思?

  •  0
  • Yana Agun Siswanto  · 技术社区  · 6 年前

    https://github.com/ory/editor/blob/master/packages/ui/src/Trash/index.js#L89

    发现了一种我不明白的论点。 以下是完整代码:

    const types = ({ editor }: { editor: Editor }) => {
      const plugins = [
        ...Object.keys(editor.plugins.plugins.layout),
        ...Object.keys(editor.plugins.plugins.content)
      ].map(
        (p: string) =>
          editor.plugins.plugins.content[p].name ||
          editor.plugins.plugins.layout[p].name
      )
    
      if (editor.plugins.hasNativePlugin()) {
        plugins.push(editor.plugins.getNativePlugin()().name)
      }
    
      return plugins
    }
    

    2 回复  |  直到 6 年前
        1
  •  1
  •   Halil Irmak    6 年前

    这意味着函数将接收一个包含editor属性的对象,并且具有editor类型。

    有关更多信息,请查看 https://flow.org/en/

        2
  •  1
  •   lumio    6 年前

    这里有两部分。

    1. 你破坏给定的参数,只使用 editor 财产
      { editor }
    2. 你定义了 type of the passed object .

    如果没有类型定义,它看起来像这样。如果你知道,你只需要一个传递对象的编辑器,你就可以破坏它

    // Passing and working with the whole object
    const fn1 = ( obj ) => {
      const editor = obj.editor;
      console.log( editor );
    };
    
    // Destructing the object and only use the editor property
    // Basically the same as fn1 without the whole obj.
    const fn2 = ( { editor } ) => {
      console.log( editor );
    };
    
    const obj = {
      editor: 'Editor',
    };
    
    fn1( obj );
    fn2( obj );