打字稿类型描述在功能中的位置

时间:2018-11-26 02:41:53

标签: reactjs typescript

我正在学习打字稿。 在写一些代码时,我意识到我不理解下面的代码。

const MainTable: React.SFC<IProps> = (props) => {
  const logKey = Object.keys(props.log[0]);
  const tableCells = (): JSX.Element[] => {
    return props.log.map((field, index) => {
      const element: JSX.Element[] = [];
      // here I will use map to push JSX element to element,
      // and return to parent map
    })
  }
}

Component MainTable是React无状态功能组件,因此我在变量名之后编写了类型。但是,对于MainTable组件内部的tableCells,该函数返回一个带有JSX.Elements的数组,并且返回类型在()之后进行描述。我试图用变量名来描述类型,例如const tableCells: JSX.Element[] = () => ...,但皮棉对此有所抱怨。

所以我想知道它们之间的区别。

1 个答案:

答案 0 :(得分:0)

  

const tableCells: JSX.Element[] = () => ...但是皮棉对此有所抱怨。

因为JSX.Element[]不是正确的类型。正确的类型为() => JSX.Element[],即a function that returns an array of jsx.elements

使用中:

const tableCells: () => JSX.Element[] = () =>