Reactjs 键入React组件的实例数组

Reactjs 键入React组件的实例数组,reactjs,typescript,typescript-typings,Reactjs,Typescript,Typescript Typings,我有一个表组件,它接收一个字符串/数字数组数组作为道具,因此它采用如下类型的rows参数: type Row = (string | number)[]; 但是,有些列需要显示React组件,而不是纯文本/数字 我怎样才能改变打字方式使它工作呢?我试过这个: type Row = (string | number | React.PureComponent | React.Component)[]; 这里有很多可行的选项,有些更好,取决于您如何使用它们。我一直在使用React.ReactNo

我有一个表组件,它接收一个字符串/数字数组数组作为道具,因此它采用如下类型的rows参数:

type Row = (string | number)[];
但是,有些列需要显示React组件,而不是纯文本/数字

我怎样才能改变打字方式使它工作呢?我试过这个:

type Row = (string | number | React.PureComponent | React.Component)[];

这里有很多可行的选项,有些更好,取决于您如何使用它们。我一直在使用React.ReactNode来指定子级,但您可能也可以将其用于您的用例

type Row = (string | number | React.ReactNode)[];
ReactNode非常灵活,因为它被定义为:

type ReactNode = ReactChild | ReactFragment | ReactPortal | boolean | null | undefined;
而ReactChild则依次定义为:type ReactChild=ReactElement | ReactText


如果您想让它更严格、更不灵活,请尝试使用ReactElement。

作为参考,此问题属于/曾经属于“功能元效应”: